2

Linux システム ディレクトリ内の複数のファイルの名前を変更したい....

私のファイル名は次のとおりです。

Lec 1 - xxx.webm
Lec 2 - xxx.webm
Lec 3 - xxx.webm
Lec 4 - xxx.webm

そしてリストは続きます...

ここで、xxx は任意の文字のリストにすることができます (一貫性がありません)...

ここにあるすべてのファイルの名前を次のように変更したいと思います。

mv Lec 1 - xxx.webm Lec 1.webm
mv Lec 2 - xxx.webm Lec 2.webm
mv Lec 3 - xxx.webm Lec 3.webm

等々....

for ループ内で行うことができますが、置換を行う方法は?

*番号の後のすべての文字を削除して、名前を変更したファイルにする必要があります

4

3 に答える 3

2

このforループは仕事をするはずです:

for f in *.webm; do
   mv "$f" "${f/ -*/}.webm"
done
于 2016-07-30T10:21:30.473 に答える
2

${string%substring}$substring: の後ろからの最短一致を削除し$stringます。

for i in *.webm; do mv $i ${i%xxx}; done

またはチェックアウト:

${string%%substring}$substring: の後ろからの最長一致を削除し$stringます。

于 2016-07-30T10:21:53.280 に答える