Bagaimana cara menyalin beberapa baris pertama dari file raksasa, dan menambahkan satu baris teks di bagian akhir menggunakan beberapa perintah Linux?

89

Bagaimana cara menyalin beberapa baris pertama dari file raksasa dan menambahkan satu baris teks di akhir, menggunakan beberapa perintah Linux?

biznez
sumber
1
Dalam pestahead -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv
Eric Leschinski

Jawaban:

147

The headperintah bisa mendapatkan yang pertama ngaris. Variasinya adalah:

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

yang akan mendapatkan 7 baris pertama dari file yang dipanggil "file". Perintah yang akan digunakan bergantung pada versi Anda head. Linux akan bekerja dengan yang pertama.

Untuk menambahkan baris ke akhir file yang sama, gunakan:

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

atau:

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

melakukannya dalam satu pukulan.

Jadi, menyatukan kedua ide ini, jika Anda ingin mendapatkan 10 baris pertama dari input.txtfile output.txtdan menambahkan satu baris dengan lima "="karakter, Anda dapat menggunakan sesuatu seperti:

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

Dalam hal ini, kami melakukan kedua operasi dalam sub-shell untuk menggabungkan aliran output menjadi satu, yang kemudian digunakan untuk membuat atau menimpa file output.

paxdiablo
sumber
21

Saya berasumsi apa yang Anda coba capai adalah menyisipkan baris setelah beberapa baris pertama dari textfile.

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

Jika Anda tidak ingin sisa baris dari file, lewati saja bagian ekor.

DJ.
sumber
3
Subkulit memungkinkan Anda melakukan ini tanpa membuka kembali file keluaran:(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
hobbs
5

Pertama beberapa baris: man head.

Tambahkan baris: gunakan >>operator (?) Di Bash:

echo 'This goes at the end of the file' >> file
strager
sumber