みんな、
私はファイル名からパターンを一括削除するためにforコマンドを使っていたずらしました。
ファイル名の例:
:Common:CBE.key_44643_1
次のコマンドを使用して:Common:部分を削除できます。
for f in *; do mv "$f" "${f#:Common:}";done
生涯の間、.keyの右側にあるすべてのエントリを削除するように指示することはできません。以下は私の試みです
for f in *; do mv "$f" "$(?<=crt)(?s)(.*$);done
コマンドは実行されますが、ファイルは変更されません。私はこれをMacで実行しています。
答え1
シェルを使用してこれを行う1つの方法は次のとおりです。
for f in *; do
mv -- "$f" "${f%.key*}.key"
done
答え2
ファイル名に改行やバックスラッシュが含まれていないとします。
for f in ./*
do
mv "$f" "$(echo "$f" | sed 's/key_.*$/key/')
done