내 홈 디렉토리에 다음 두 파일이 있습니다.
hello_newest.txt
goodbye_newest.txt
파일 이름의 "최신" 부분이 완전히 제거되도록 이름을 바꾸고 싶습니다 hello.txt
.goodbye.txt
이것은 내가 실행하는 명령입니다 -
find -name "*.txt" -exec rename 's/newest//i' {} ";"
이 명령을 실행한 후에는 오류가 발생하지 않거나 파일에 아무 작업도 수행되지 않습니다. 체크아웃했어요http://www.computerhope.com/unix/rename.htm그리고 거기에 있는 몇 가지 예를 기반으로 작동해야 하는 것처럼 보입니다.
분명 뭔가 간단한 것 같은데, 내가 뭘 놓치고 있는 걸까요?
답변1
우리가 사용하던 Redhat 버전인 것 같습니다. 명령 -
rename _newest '' *
같은 목표를 달성한 것 같습니다.
도와 주셔서 감사합니다.
답변2
다른 구문. 하지만 나를 위해 일했습니다.
for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done
모든 txt 파일은 for 루프를 사용하여 찾은 다음 sed를 사용하여 밑줄 뒤의 문자를 제거합니다.