답변:
파일이 심볼릭 링크 나 하드 링크가 아닌 경우 sed, tail 또는 awk를 사용할 수 있습니다. 아래 예.
$ cat t.txt
12
34
56
78
90
$ sed -e '1,3d' < t.txt
78
90
임시 파일없이 sed를 제자리에서 사용할 수도 있습니다 sed -i -e 1,3d yourfile
. 아무 것도 에코하지 않고 파일을 제자리에서 수정합니다. 결과를 다른 명령으로 파이프 할 필요가 없으면 더 쉽습니다.
$ tail -n +4 t.txt
78
90
$ awk 'NR > 3 { print }' < t.txt
78
90
sed -i
구체적으로. 대부분의 구현은 파일을 삭제하고 새 파일로 바꾸면 원본을 다른 위치에 남겨두기 때문에 링크에서 작동하지 않습니다.
테이블 라인이 탭 문자가있는 라인 인 경우 :
grep '␉' <input_file >output_file
( ␉
리터럴 탭 문자) 또는 동등
sed -n '/␉/p' <input_file >output_file
bash / ksh / zsh 스크립트에서 $'\t'
탭을 작성할 수 있습니다 ( 예 : grep $'\t'
또는) sed -n $'/\t/p'
.
파일 시작 부분에서 10 줄을 제거하려면 다음을 수행하십시오.
tail -n +11 <input_file >output_file
( “11 행에서 시작”을 의미하고 1에서 꼬리 행을 의미 +11
하기 때문에 10 행을 제거 해야합니다 +11
) 또는
sed '1,10d' <input_file >output_file
Linux에서는 GNU sed의 -i
옵션을 사용하여 파일을 적절 하게 수정할 수 있습니다.
sed -i -n '/\t/p' *.txt
또는 쉘 루프와 임시 파일을 사용할 수 있습니다.
for x in *.txt; do
tail -n +11 <"$x" >"$x.tmp"
mv "$x.tmp" "$x"
done
또는 파일을 제자리에 수정하지 않고 대신 다른 이름을 지정하십시오.
for x in *.txt; do
tail -n +11 <"$x" >"${x%.txt}.data"
done
sed -i -e 1,3d yourfile
. 아무 것도 에코하지 않고 파일을 제자리에서 수정합니다. 결과를 다른 명령으로 파이프 할 필요가 없으면 더 쉽습니다.