Bu, dosyayı satır satır tersine çevirir.
sed '1! G; h; $! d' dosyası
İlk olarak, sedbir tutma alanı ve bir desen alanı vardır . Bu özel komuta konsantre olmadan önce aralarında ayrım yapmak zorundayız.
Ne zaman sedyeni bir satır okur, bu model uzaya yüklenir. Bu nedenle, her yeni satır işlendiğinde bu alanın üzerine yazılır. Öte yandan, tutma alanı tüm işleme boyunca tutarlıdır ve değerler daha sonra kullanılmak üzere orada saklanabilir.
Komuta:
Orada bu açıklamada 3 komutlar şunlardır: 1!G, hve$!d
1!Gbu araçlar G, komut ilk hariç tüm hat üzerinde yürütülür ( !ortadan 1). tutma boşluğundaki şeyi desen boşluğuna eklemekG anlamına gelir .
hher satır için geçerlidir. Bu kopyalar desen tutma boşluğuna uzay (ve üzerine yazar bunu).
$!dson satır hariç her satır için geçerlidir ( $son satırı temsil eder, !reddeder). dsatırı silme komutudur (desen alanı).
- Şimdi, ilk satır okunduğunda, komutu
sedyürütür h. İlk satır tutma alanına kopyalanır. Ardından, $!koşulla eşleştiği için silinir . sedikinci satırla devam eder.
- İkinci satır koşulla eşleşir
1!(bu ilk satır değildir) ve dolayısıyla (ilk satıra sahip olan) tutma alanı (ikinci satıra sahip olan) desen alanına eklenir. Bundan sonra, desen uzayında, şimdi bir satırsonu ile sınırlanan ikinci satır ve ardından ilk satır vardır. Şimdi, hkomut uygulanır (her satırda olduğu gibi); desen alanındaki her şey tutma alanına kopyalanır. Üçüncü ifade ( $!d) uygulanır: Çizgi, desen alanından silinir.
- Adım 2 şimdi tüm satırlarla yapılır. Son satıra geçiyoruz.
- Son satırda (
$), 2. Adımın neredeyse tamamı yapılır, ancak silme parçası ( d) yapılmaz . sed, olmadan çağrıldığında -n, her girdi satırı için işlemin sonunda desen alanını otomatik olarak yazdırır. Böylece, silinmediğinde, desen alanı yazdırılır. Artık tüm satırları ters sırada içermektedir .