Bash 스크립트의 파일 두 번째 줄에서 루프 실행

Bash 스크립트의 파일 두 번째 줄에서 루프 실행

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

sedproc 전에 필터링할 수 있습니다.

예를 들어 첫 번째 행을 삭제할 cat abc.txt수 있습니다 .sed 1d abc.txt

답변3

제목이 첫 번째 줄에 없거나 빈 줄이 있는 경우에도 작동합니다.

awk '!/^(id| *)$/{print$0}' file | while read line; do
    something $line
done

나는 .whilefor

즉, 이것이 귀하의 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

관련 정보