다음과 같은 파일이 많이 있습니다.
04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956
접두사를 제외하려면 이름을 바꿔야 합니다. 이렇게 보여야 하는데..
b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956
편집하다
나는 솔라리스를 사용하고 있다는 사실을 덧붙이는 것을 잊었습니다.
답변1
for file in * ; do
echo mv -v "$file" "${file#*_}"
done
이 명령을 실행하여 모든 것이 제대로 작동하는지 확인하세요.
그렇다면 echo
명령에서 해당 파일을 제거하면 필요에 따라 파일 이름이 변경됩니다.
"${file#*_}"
쉘에서 일반적으로 사용되는 대체 함수입니다. 첫 번째 기호 _
앞의 모든 문자 (기호 자체 포함)를 제거합니다. 자세한 내용은 다음을 참조하세요.여기.
답변2
이 도구를 사용할 수 있습니다진주의rename
이를 위해:
rename "s/.*_//" *
추가하면 -n
아무 것도 이름이 바뀌지 않고 아무 것도 표시되지 않습니다 -n
.
rush의 의견에 대한 응답으로: Mine은 실제로 rename
Debian 및 Ubuntu 패키지와 함께 제공되는 링크입니다.prename
perl