
내가 원하는 것은 이와 같은 특정 수의 줄을 지정 lineNumberIs=3
하고 읽는 동안 이 세 번째 줄에서 시작하거나 줄 번호가 무엇인지 알려주고 나중에 가져온 줄에서 일부 명령을 실행하기 위해 와드 뒤에 줄을 가져오는 것입니다.
그런 것
while read line from $lineNumberIs
do
**some commands not just echo nor printing on the screen**
done < $dataFile
답변1
while IFS= read -r line; do
# ...
done < <(tail -n "+$lineNumberIs" $dataFile)
tail -n +K
(더하기 기호 사용)은 tail이 지정된 줄 번호에서 시작하도록 지시합니다(참조).맨 페이지).
비트 <(...)
는프로세스 대체. 이를 통해 명령 순서를 지정하고 bash가 파일처럼 명령 순서를 읽을 수 있습니다. 파이프라인에서 생성된 하위 셸의 효과를 피하려는 경우 매우 편리합니다.
IFS= read -r
공백이나 이스케이프 시퀀스를 제거하지 않고 파일에 나타나는 줄을 정확히 읽는 데 사용됩니다.
답변2
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Please execute $0 with linestoskip parameter"
exit 0
fi
linestoskip=$1
Counter=0
dataFile='/etc/fstab'
while read line
do
if [ $Counter -ge $linestoskip ]; then
echo $line
fi
Counter=`expr $Counter + 1`
done < $dataFile
이 스크립트는 건너뛸 줄 수를 매개변수로 예상합니다. if 조건 내부에서 원하는 것은 무엇이든 할 수 있습니다.
답변3
매우 간단한 해결책 -
tail -n +K filename
여기서 K = 파일을 읽으려는 줄 번호입니다. 그러면 K번째 줄부터 끝까지 파일 읽기가 시작됩니다.