반응형
각 루프에 대한 Bash
제가 입력한 것이 있습니다.각 줄에는 파일 이름이 있습니다.이 파일을 읽고 각 파일의 내용을 표시하려면 어떻게 해야 합니까?
다음과 같은 작업을 수행할 수 있습니다.
xargs cat <filenames.txt
그xargs
프로그램은 표준 입력을 읽고, 각 입력 라인에 대해 실행합니다.cat
입력 라인을 인수로 사용하는 프로그램입니다.
루프에서 이 작업을 수행하려면 다음 작업을 수행할 수 있습니다.
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"forach"는 bash의 이름이 아닙니다.그것은 단순히 "용"입니다.다음과 같은 작업을 한 줄로만 수행할 수 있습니다.
for fn in `cat filenames.txt`; do cat "$fn"; done
참조: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
여기 있습니다.while
루프:
while read filename
do
echo "Printing: $filename"
cat "$filename"
done < filenames.txt
xargs --arg-file inputfile cat
그러면 파일 이름과 파일 내용이 출력됩니다.
xargs --arg-file inputfile -I % sh -c "echo %; cat %"
파일 이름의 공백은 혐오스럽지만 처리하고 싶을 것입니다. :-)
그래서 처음에는 다음과 같은 것을 선택했습니다.
pax> cat qq.in
normalfile.txt
file with spaces.doc
pax> sed 's/ /\\ /g' qq.in | xargs -n 1 cat
<<contents of 'normalfile.txt'>>
<<contents of 'file with spaces.doc'>>
pax> _
모든 확장자가 동일한 경우(예: .jpg) 다음을 사용할 수 있습니다.
for picture in *.jpg ; do
echo "the next file is $picture"
done
(이 솔루션은 파일 이름에 공백이 있는 경우에도 작동합니다.)
cat `cat filenames.txt`
성공할 것입니다
언급URL : https://stackoverflow.com/questions/4162821/bash-foreach-loop
반응형
'prosource' 카테고리의 다른 글
이클립스에서 콘솔 창을 여는 방법은 무엇입니까? (0) | 2023.05.23 |
---|---|
jQuery 개체를 문자열로 변환하는 방법은 무엇입니까? (0) | 2023.05.23 |
IIS Express 웹 서버를 시작할 수 없습니다. URL을 등록하지 못했습니다. 액세스가 거부되었습니다. (0) | 2023.05.23 |
Xcode 제품 -> 보관 사용 안 함 (0) | 2023.05.23 |
git checkout --track origin/branch와 git checkout -branch origin/branch의 차이 (0) | 2023.05.18 |