폴더에 많은 파일이 있고 모든 파일 이름의 모든 공백 문자를 밑줄로 바꾸고 싶습니다. 이것을 어떻게 할 수 있습니까?
답변:
Perl 스타일의 정규식을 사용하는 'rename'명령을 사용하는 것을 선호합니다.
rename "s/ /_/g" *
-n 플래그를 사용하여 테스트 실행을 수행 할 수 있습니다.
rename -n "s/ /_/g" *
rename " " "_" *
rename
OSX에서는 사용할 수 없습니다.
rename
사용할 수 있습니다.
사용 sh ...
for i in *' '*; do mv "$i" `echo $i | sed -e 's/ /_/g'`; done
방아쇠를 당기기 전에 이것을 시도하려면 mv
로 변경 하십시오 echo mv
.
bash를 사용하는 경우 :
for file in *; do mv "$file" ${file// /_}; done
mv --help' for more information. mv: when moving multiple files, last argument must be a directory Try
. 자세한 내용은 mv --help '를 사용 해보세요 .
mv --help' for more information. mv: missing file argument Try
자세한 내용은 mv --help '를 시도 하십시오. mv : 누락 된 파일 인수 mv --help' for more information. mv: missing file argument Try
자세한 내용은 mv --help '를 시도 하십시오.
대체 작업을 재귀 적 으로 적용하려면 어떻게해야 합니까? 어떻게 하시겠습니까?
글쎄, 방금 답을 찾았습니다. 가장 우아한 솔루션은 아니지만 (조건을 준수하지 않는 파일의 이름도 변경하려고 시도) 작동합니다. (BTW, 제 경우에는 밑줄이 아닌 '% 20'으로 파일 이름을 변경해야했습니다)
#!/bin/bash
find . -type d | while read N
do
(
cd "$N"
if test "$?" = "0"
then
for file in *; do mv "$file" ${file// /%20}; done
fi
)
done
모든 파일이 .txt라고 가정하여 다음과 같이 시도하십시오.
for files in *.txt; do mv “$files” `echo $files | tr ‘ ‘ ‘_’`; done
tr --help' for more information. mv: missing file argument Try
자세한 내용은 mv --help '를 시도 하십시오.
변수를 인용하십시오.
for file in *; do echo mv "'$file'" "${file// /_}"; done
실제 이름을 변경하려면 "echo"를 제거하십시오.
\'1130 lake micigan view.jpg\'': No such file or directory mv: cannot stat
\ '1130_1_bedroom_floor_plan.jpg \' ': 해당 파일이나 디렉토리 MV : 할 수 없습니다 합계 \'1130_BedPicture_8.jpg\'': No such file or directory mv: cannot stat
\'1130_diningroom_table.jpg \ '': 그런 파일이 없습니다 또는 디렉토리
문자열 (귀하의 경우 공백 문자)을 다른 문자열로 바꾸는 가장 쉬운 방법은를 Linux
사용하는 것 sed
입니다. 다음과 같이 할 수 있습니다.
sed -i 's/\s/_/g' *
도움이 되었기를 바랍니다.
귀하의 대답은 파일 이름의 공백을 밑줄 로 바꾸기에 있습니다 .
.py
확장자
가있는 모든 파일의 이름을 바꾸려면
find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
샘플 출력,
$ find . -iname "*.py" -type f
./Sample File.py
./Sample/Sample File.py
$ find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
$ find . -iname "*.py" -type f
./Sample/Sample_File.py
./Sample_File.py
1 - foo.jpg
내 폴더가 이미1.jpg
있습니다.