일부 쉘 스크립팅을 배우기 시작했습니다. 한 파일에서 실행되는 펄 스크립트가 있습니다. 펄 스크립트를 키워드 "filename"을 가진 모든 파일에 여러 번 실행하는 쉘 스크립트를 작성하는 방법은 무엇입니까? 영어 그래서 유닉스의 여러 파일에 스크립트를 실행하십시오.
,for /filename/ in filenames
perl myscript.pl completefilename
감사합니다. 배쉬에서
일부 쉘 스크립팅을 배우기 시작했습니다. 한 파일에서 실행되는 펄 스크립트가 있습니다. 펄 스크립트를 키워드 "filename"을 가진 모든 파일에 여러 번 실행하는 쉘 스크립트를 작성하는 방법은 무엇입니까? 영어 그래서 유닉스의 여러 파일에 스크립트를 실행하십시오.
,for /filename/ in filenames
perl myscript.pl completefilename
감사합니다. 배쉬에서
find . -name "filename*" -exec perl myscript.pl '{}' \;
:
files=`ls -1 *`
for $file in $files;
do
perl myscript.pl $file;
done
FILES = "키워드" 펄 myscript.pl $ f는 http://www.cyberciti.biz/faq/bash-loop-over-file/
에서을 수행 할 "$ 파일"의 F에 대한
하지만 $ f는 전체 키워드 (키워드 포함)를 원하지만 반면에 $ f는 키워드를 가져옵니다. – Dirk
find . -path "\*filename\*" -exec perl myscript.pl {} \;
편집 : 탈출 별, 여기
for i in $(\ls -d filenames)
do
perl myscript.pl $i
done
마크 업 'ls'이 명령 앞에 백 슬래시 일시적으로 별칭을 사용하지 않도록하는 것입니다 싶지 않았다. 예를 들어 대신 당신은 또한 와일드 카드를 사용할 수있는 파일 이름의 공백으로 구분 된 목록의 $ for file in filename1 filename2 filename3; do perl myscript $file; done
, :
$ for file in *.txt *.csv; do perl myscript $file; done
하나 라이너
파일 이름에 공백이 있으면 이전 대기 모드를 사용하십시오.
find . -maxdepth 1 -print0 | xargs -0 perl myscript.pl
그리고 만약 HTH
나는 개인적으로 당신에게 하위 집합에 재귀 적으로 명령을 실행 할 수있는 아주 좋은 방법을 제공하는 zsh을 쉘을 사용합니다. 또한 파일 접미사를 변경하여 절름발이를 사용하여 .wav 파일의 MP3 파일을 만들 때 손쉽게 사용할 수 있습니다.
for **/*. wav; lame $ i $ i : r.mp3
하나의 명령 출력을 다른 명령으로 파이프 할 수도 있습니다.이 명령은 비트 토런트 파일을 여러 개 다운로드 할 때 자주 사용하며 각 다운로드마다 백분율을보고 싶습니다. 완료되었습니다 :
**/*. txt; grep -H % $ i | tail -1
공백이있는 파일 이름이없는 한 작동합니다. – hillu