İle awk
:
awk 'NF{NF-=1};1' <in >out
veya:
awk 'NF{NF--};1' <in >out
veya:
awk 'NF{--NF};1' <in >out
Bu vudu çiçeği gibi gözükse de işe yarıyor. Bu awk komutlarının her birinde üç bölüm vardır.
Birincisi NF
, ikinci bölüm için bir önkoşuldur. NF
bir satırdaki alan sayısını içeren bir değişkendir. AWK’de, 0 değil veya boş bir dize varsa, şeyler doğrudur ""
. Dolayısıyla, ikinci kısım ( NF
azaltılan yerde ) sadece NF
0 değilse gerçekleşir .
İkinci parça (ya NF-=1
NF--
da --NF
) sadece birini NF
değişkenden çıkartıyor. Bu, son alanın yazdırılmasını önler, çünkü bir alanı değiştirdiğinizde (bu durumda son alanı kaldırarak), awk
yeniden yapılandırın $0
, varsayılan olarak boşlukla ayrılmış tüm alanları birleştirin. $0
artık son alanı içermiyordu.
Son kısım 1
. Büyülü değil, sadece bir ifade olarak kullanılıyor true
. Bir awk
ifade, ilişkili bir işlem yapmadan true olarak değerlendirilirse, awk
varsayılan eylem şöyledir print $0
.