변수를 사용하여 파일에서 처음 n 줄을 제거합니다.

변수를 사용하여 파일에서 처음 n 줄을 제거합니다.

다음 명령은 처음 3줄을 삭제하는 데 사용됩니다.

sed -i -e 1,3d t.txt

그래서 3을 아래와 같은 스크립트의 변수로 바꾸려고했습니다.

NrLines=$(wc -l t.txt)
sed -i -e 1,"$NrLines{d}" t.txt

다음과 같은 오류가 발생했습니다.

sed: -e expression #1, char 13: unexpected `}'

내가 뭘 잘못했나요?

답변1

명령 대체와 중괄호가 잘못 사용되는 것 같습니다.

NrLines=$(wc -l < t.txt)
sed -i -e 1,"${NrLines}d" t.txt

답변2

이를 수행하려면 다른 방법을 사용하십시오 tail(대용량 파일에는 최선의 옵션이 아닙니다).

NrLines=3
<<< "$(< t.txt)" tail -n +$((NrLines+1)) > t.txt

관련 정보