다음 명령은 처음 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