Chciałbym zmienić plik o nazwie takiej jak:
d1-a2_A1_B1.txt
abcd_A90_B2.txt
gdzie chcę wstawić _FOO
między pierwszy, _A[0-9]\+
a _B[0-9]
więc nazwy plików stają się
d1-a2_A1_FOO_B1.txt
abcd_A90_FOO_B2.txt
Ale moje wyrażenie regularne nie działa:
for f in $(ls); do mv $f \`echo $f | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/\`; done
Próbowałem z jednym ciągiem:
echo abcd_A90_B2.txt | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/
OK: zadziałało:
echo abcd_A90_B2.txt | sed -e 's/\(_A[0-9]\+\)\(_B[0-9]\)/\1_FOO\2/'