次のような名前のファイルを変更したい:
d1-a2_A1_B1.txt
abcd_A90_B2.txt
私は挿入する場所_FOO
最初の間にある_A[0-9]\+
と_B[0-9]
そのファイル名になり
d1-a2_A1_FOO_B1.txt
abcd_A90_FOO_B2.txt
しかし、私の正規表現は機能しません:
for f in $(ls); do mv $f \`echo $f | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/\`; done
私は単一の文字列で試しました:
echo abcd_A90_B2.txt | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/
OK:これはうまくいきました:
echo abcd_A90_B2.txt | sed -e 's/\(_A[0-9]\+\)\(_B[0-9]\)/\1_FOO\2/'
書式設定が改善されれば、投稿は大幅に改善されます。のフォーマット方法に関するヘルプページを次に示します。自分で編集しますが、他の編集が保留になっているため、編集できません。
—
トムザイチ