Bazı Linux komutlarını kullanarak dev bir dosyanın ilk birkaç satırını nasıl kopyalayabilirim ve sonuna bir metin satırı ekleyebilirim?
Yanıtlar:
headKomut ilk alabilirsiniz nsatırları. Varyasyonlar:
head -7 file
head -n 7 file
head -7l file
denilen dosyanın ilk 7 satırını alacak "file". Kullanılacak komut, sürümünüze bağlıdır head. Linux birincisi ile çalışacak.
Aynı dosyanın sonuna satır eklemek için şunu kullanın:
echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file
veya:
echo 'first line to add
second line to add
third line to add' >>file
tek vuruşta yapmak için.
Öyleyse, bu iki fikri birbirine bağlayarak, input.txtdosyanın ilk 10 satırını almak ve output.txtbeş "="karakterli bir satır eklemek istiyorsanız, aşağıdaki gibi bir şey kullanabilirsiniz:
( head -10 input.txt ; echo '=====' ) > output.txt
Bu durumda, çıktı akışlarını tek bir alt kabukta birleştirmek için her iki işlemi de bir alt kabukta yaparız, bu daha sonra çıktı dosyasını oluşturmak veya üzerine yazmak için kullanılır.
Başarmaya çalıştığınız şeyin, bir metin dosyasının ilk birkaç satırından sonra bir satır eklemek olduğunu varsayıyorum.
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
Dosyadaki satırların geri kalanını istemiyorsanız, sadece kuyruk kısmını atlayın.
(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv