Buradaki en kolay araç olabilir sed
. Takmak için b.txt
içine a.txt
5 satırdan sonra, yazabilirsiniz:
sed '5r b.txt' a.txt
sed
argüman ( a.txt
) olarak belirtilen dosyayı satır satır okur . Bir komut tarafından değiştirilmedikçe tüm satırlar, girişte göründükleri gibi çıktıda çoğaltılır.
5
Aşağıdaki komut yerine getirilir hangi bir adres (satır numarası) 'dir. Kullandığımız komut r
, bir dosya adını bağımsız değişken olarak alır (burada b.txt
), onu tamamen okur ve geçerli satırdan sonra çıktıya ekler.
Yukarıda olduğu gibi, bu sed
komut satırı çıktıyı herhangi bir dosyaya yazmadan yalnızca terminale yazdıracaktır. Bash'in çıkış yeniden yönlendirmesini kullanarak dosyayı yeni bir dosyaya (giriş dosyalarından herhangi birine değil!) Yönlendirebilirsiniz:
sed '5r b.txt' a.txt > c.txt
Veya 's ("yerinde" için) anahtarını a.txt
kullanarak dış girdi dosyasını doğrudan değiştirebilirsiniz . Bunu şu şekilde yazarsanız , ilk girdi ekiyle birlikte ilk girdi dosyasının yedek bir kopyasını oluşturur :sed
-i
-i.bak
.bak
sed -i '5r b.txt' a.txt
Bir örnek:
$ cat a.txt
January
February
March
April
May
October
November
December
$ cat b.txt
June
July
August
September
$ sed '5r b.txt' a.txt
January
February
March
April
May
June
July
August
September
October
November
December