2016-04-04 21 views
1

Ben awk gidiyordu ve bir dosya çift boşluk için aşağıdaki iki komut bulundu.awk kullanarak bir dosya çift boşluklu

Birisi bu komutların gerçekte nasıl çalıştığını açıklayabilir mi?

awk '1;{print ""}' filename 

awk 'BEGIN{ORS="\n\n"};1' filename 

Teşekkür

+0

İki deyim yapmak istediğiniz şeyi gerçekten yapar mı? Çift boşluk ne demek istiyorsun? Orijinal dosyanız 100Kb ise, bunu çalıştırdıktan sonra 200kb dosyanız var mı? Bu iki ifade, tek satırın ikiye bölünmesinden başka bir şey yapmaz. – Kent

+1

İkinci komut, tam olarak aynı etki için 'awk -v ORS =" \ n \ n "1 dosyaadı" olarak yazılabilir. –

cevap

3

İlk örnek, iki ortak awk kısayolları kullanır: 1 daima doğrudur sadece bir desen, yani "satırını yazdırmak" dir varsayılan eylem, her hat için çalıştırılır. Daha sonra, boş bir desene sahip bir kural vardır (ki bu da her zaman doğrudur, ancak her iki deseni ve eylemi atlayamazsınız), bu eylemde sadece boş bir çizgi basar.

İşletme ikinci örnek değişikliği hemen her satırı kopyalama yeterli olacağı şekilde, iki olmak OR üzerindeki Record, genellikle, sadece tek bir sonu hattı olan S eparator, ıkış. (BEGIN kuralları giriş dosyası okunmadan önce yürütülür.)