だから私は、これらは、具体的.log
ファイルで、テキストファイル内のファイルの名前の負荷を入れている:今、私は.log
ファイルのリストを持っていることをテキストファイルbashでファイルの拡張子を削除
ls *.log > finished_data.txt
、名前を保持するにはどうすればよいですか?.log
拡張子を削除しますか? 私の思考プロセスはそれらの名前をすべて変更していますか?
だから私は、これらは、具体的.log
ファイルで、テキストファイル内のファイルの名前の負荷を入れている:今、私は.log
ファイルのリストを持っていることをテキストファイルbashでファイルの拡張子を削除
ls *.log > finished_data.txt
、名前を保持するにはどうすればよいですか?.log
拡張子を削除しますか? 私の思考プロセスはそれらの名前をすべて変更していますか?
.log
ファイルを通じて
だけループし、それらを動かす:
for file in *.log
do
mv "$file" "${file%.log}"
done
これはshell parameter expansionを使用しています。
端から.log
を除去することにより、すべての
.log
ファイルの名前を変更する
rename
を使用し
$ d="a.log.log"
$ echo "${d%.log}"
a.log
どうもありがとうございました。特定のファイルに最後に.logを追加するといいでしょうか? – user3667111
@ user3667111 'mv" $ file "" $ {file} .log "'と言うだけです。 – fedorqui
@gniourf_gniourfありがとう、私はいつも '%'と '%%'と混乱します。私は '%'が最も正確な最短一致を取り除くのを見ます。 'for'ループの構文について:違いはありますか? – fedorqui
:
rename 's/\.log$//' *.log
\.log$
一致するファイル名の末尾に.log
、あなたがprename
を使用している場合は、その最初のドライ実行を行うことができます空白で置き換えることによって、省略されている:
rename -n 's/\.log$//' *.log
変更に満足する場合:
rename 's/\.log$//' *.log
このpの右上にある[Q&A検索]ボックスに気付きましたか?年齢? – Jdamian