거대한 파일의 처음 몇 줄을 복사하고 일부 Linux 명령을 사용하여 끝에 텍스트 줄을 추가하는 방법은 무엇입니까?


91

Linux 명령을 사용하여 거대한 파일의 처음 몇 줄을 복사하고 끝에 텍스트 줄을 추가하려면 어떻게해야합니까?


1
bash에서head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv
Eric Leschinski

답변:


149

head명령은 첫 번째 n줄을 가져올 수 있습니다 . 변형은 다음과 같습니다.

head -7 file
head -n 7 file
head -7l file

라는 파일의 처음 7 줄을 가져옵니다 "file". 사용할 명령은 버전에 따라 다릅니다 head. Linux는 첫 번째와 함께 작동합니다.

동일한 파일 끝에 줄을 추가하려면 다음을 사용하십시오.

echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file

또는:

echo 'first line to add
second line to add
third line to add' >>file

한 번에 할 수 있습니다.

따라서이 두 가지 아이디어를 함께 묶어 input.txt파일 의 처음 10 줄을 가져 output.txt오고 5 "="자 줄을 추가 하려면 다음과 같이 사용할 수 있습니다.

( head -10 input.txt ; echo '=====' ) > output.txt

이 경우 출력 스트림을 하나로 통합하기 위해 하위 셸에서 두 작업을 모두 수행 한 다음 출력 파일을 만들거나 덮어 쓰는 데 사용됩니다.


22

나는 당신이 달성하려는 것이 텍스트 파일의 처음 몇 줄 뒤에 줄을 삽입하는 것이라고 가정하고 있습니다.

head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt

파일의 나머지 줄을 원하지 않으면 꼬리 부분을 건너 뛰십시오.


3
서브 쉘을 사용하면 출력 파일을 다시 열지 않고도이 작업을 수행 할 수 있습니다.(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
hobbs

5

처음 몇 줄 : man head .

줄 추가 : >>Bash에서 연산자 (?)를 사용합니다 .

echo 'This goes at the end of the file' >> file
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.