Bu tek astar, ön sıralama yapmadan yinelenen satırları metin girişinden kaldırır.
Örneğin:
$ cat >f
q
w
e
w
r
$ awk '!a[$0]++' <f
q
w
e
r
$
İnternette bulduğum orijinal kod okundu:
awk '!_[$0]++'
_
Perl'de olduğu gibi awk'de özel bir anlam kazandığım için bu daha da şaşırtıcıydı , ama sadece bir dizinin adıydı.
Şimdi, bir astarın arkasındaki mantığı anlıyorum: her giriş satırı bir karma dizisinde anahtar olarak kullanılır, böylece tamamlandıktan sonra karma, varış sırasına göre benzersiz çizgiler içerir.
Öğrenmek istediğim şey, bu gösterimin awk tarafından tam olarak nasıl yorumlandığı. Örneğin, bang işareti ( !
) ve bu kod snippet'in diğer elemanları.
O nasıl çalışır?