bash、ファイル、ファイルの名前変更、位置の切り替え
名前を変更する方法
sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4
に
sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...
日付/文字列7-14
をファイル名の末尾に移動するだけです。
ありがとう。
回答
7 bac0n
mmvは、複雑でないファイルの名前変更に適しています。
mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'
また、特に同じディレクトリに他のファイルがある場合は、他の名前を変更しないように、参照ポイントをいくつか追加すると役立つ場合があります。
mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
^ ^ ^ ^
1 2 3 4
sluno-20201027-call-metroua-status.mp4
^------- ^-------------
1 2 3 4
私がいた場合は最低限でそれを行うには、mv
とbash
私は、forループとして行くだろうbash
BREマッチング組み込み。
for i in *.mp4; do \
[[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \ mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
4 pLumo
使用rename
:
rename -n 's/^(.*?)-(.*?)-(.*?)(\.mp4)$/$1-$3-$2$4/' *.mp4
-n
出力に満足している場合は削除します。
説明については、こちらをご覧ください。
JohnP
別のオプション:
$ qmv {パターン}
選択したエディターに2列のファイル名をドロップします。
右側の列を変更して、必要なファイル名を設定します。
左の列は元の名前です。右側のグループの開始列は変更できないため、自動折り返しが邪魔になる可能性があります。
各エディターの専門家の手によって、これは、特にvim列とビジュアルモードの場合、非常に速くなる可能性があります。
通常、名前の変更を使用しますが、複雑なニーズの場合は、エディターで正確な名前を確認すると便利です。