![Bash 스크립트의 파일 두 번째 줄에서 루프 실행](https://linux55.com/image/149006/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EB%91%90%20%EB%B2%88%EC%A7%B8%20%EC%A4%84%EC%97%90%EC%84%9C%20%EB%A3%A8%ED%94%84%20%EC%8B%A4%ED%96%89.png)
for 루프 스크립트에 대한 입력으로 다음 파일 내용을 사용하고 싶습니다. 두 번째 줄부터 데이터베이스에서 콘텐츠를 가져오는 데 사용되는 ID가 있습니다.
cat abc.txt
id
27
27
27
27
23
답변1
이는 다음과 같이 간단하게 만들 수 있습니다.
{ read -r; while read -r line; do echo "$line"; done; } < abc.txt
여기서 아이디어 {
는 명령을 그룹화하는 것입니다. 를 사용하면 read -r
첫 번째 줄을 건너뛸 것입니다!
답변2
sed
proc 전에 필터링할 수 있습니다.
예를 들어 첫 번째 행을 삭제할 cat abc.txt
수 있습니다 .sed 1d abc.txt
답변3
제목이 첫 번째 줄에 없거나 빈 줄이 있는 경우에도 작동합니다.
awk '!/^(id| *)$/{print$0}' file | while read line; do
something $line
done
나는 .while
for
즉, 이것이 귀하의 for
루프입니다.
for line in $(awk '!/^id$/{print$0}' file); do
something $line
done
답변4
파일이 큰 경우에는 권장되지 않습니다.
다음과 같이 사용할 수 있습니다.
for i in $(sed -e '1d' abc.txt)
do
something
done