다음과 같은 이름으로 파일을 변경하고 싶습니다.
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/
확인 : 이것은 효과가있었습니다.
echo abcd_A90_B2.txt | sed -e 's/\(_A[0-9]\+\)\(_B[0-9]\)/\1_FOO\2/'
더 나은 형식으로 게시가 크게 향상되었습니다. 형식 지정 방법에 대한 도움말 페이지는 다음과 같습니다 . 직접 수정했지만 보류중인 다른 수정 사항이 있으므로 수정할 수 없습니다.
—
Tom Zych