파일의 처음 n줄을 덮어씁니다.

파일의 처음 n줄을 덮어씁니다.

7GB의 텍스트 파일이 있고
파일의 처음 n줄(n=50이라고 가정)을 편집해야 합니다
. 다음과 같이 하려고 합니다.

head -n 50 myfile >> tmp
vim tmp # make necessary edits
substitute first 50 lines of myfile with the contents of tmp
rm tmp

여기서 3단계를 어떻게 수행합니까? 일반적인 문제에 대한 더 나은 솔루션도 감사합니다. 참고: 이 환경에는 GUI가 없습니다.

답변1

man tail설명하다:

   -n, --lines=[+]NUM
          output the last NUM lines, instead of the last 10;
          or use -n +NUM to output starting with line NUM

그러므로 당신은 할 수 있습니다

tail -n +51 myfile >>tmp

답변2

백업하기

cp fileorig.txt fileold.txt

tmp.txt에 50줄 복사

head -n 50 fileorig.txt > tmp.txt

vim을 사용하여 필요한 편집을 하세요

vim tmp.txt

3D 물건을 만들려면 이렇게 하세요

먼저 sed를 사용하여 처음 50줄을 삭제하세요.

sed -i 1,50d fileorig.txt

그런 다음 새 파일의 cat tmpedited+fileorig.txt

cat tmp.txt fileorig.txt > filenew.txt

문제가 발생한 경우 백업 복원을 원하시면 filenew.txt를 참조하세요.

cp fileold.txt fileorig.txt

답변3

해결책을 찾았습니다

head -n 50 myfile > tmp
vim tmp # make necessary edits
cat tmp > result
tail -n 50 myfile >> result
# result now contains the edited myfile

관련 정보