2016-03-22 26 views
3

Ben büyük metin dosyası (url.txt) var ve tek kullanarak aşağıdaki gerçekleştirmek isteyen komutu sed:bulup kullanarak çizgilerin aralığı arasına dosyada metni değiştirmek sed

  1. bul ve 'google' metnini 19 ve 33 satır numaraları arasında 'facebook'la değiştirin.

  2. Orijinal dosyayı değiştirmeden terminal üzerindeki çıkışı görüntüleyin.

+0

Yığın Taşması, programlama ve geliştirme soruları için bir sitedir. Bu soru konu dışı görünmektedir, çünkü programlama veya geliştirme ile ilgili değildir. Yardım Merkezi’ndeki [http://stackoverflow.com/help/on-topic] adresine buradan [Hangi konuları sorabilirim?] Bölümüne bakın. Belki de [Süper Kullanıcı] (http://superuser.com/) veya [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sorulacak daha iyi bir yer olabilir. – jww

cevap

5

Bunun için SED'nin aralığı seçiciyi kullanabilirsiniz:

sed '19,33{s/google/facebook/}' file 

Bu 19 (hariç) arasında satırlarda ikame çalışacak ve 33 (dahil)

Not Bu yalnızca yerini alacak Her satırda google'un ilk oluşumu, bu davranışı değiştirmek için g değiştiriciyi kullanabilirsiniz:

s/google/facebook/g 
+1

Teşekkürler, mükemmel çalışıyor! –