を使用すると、最初の文字uniq
のみを比較するように選択できますN
$ 猫 foo.txt 素早い茶色のキツネが怠け者の犬を飛び越えます。 素早い茶色のキツネが怠け者の猫を飛び越えます。 機敏な茶色のキツネが怠け者のネズミを飛び越えます。 $ uniq -w 40 foo.txt 素早い茶色のキツネが怠け者の犬を飛び越えます。
を使用して同じ効果を達成できますawk
か? この例を読んだ
awk '!a[$0]++'
しかし、それは行全体を比較します。
awk には次のsubstr()
機能があります。
awk '!a[substr($0,1,40)]++'
あなたの例で:
kent$ echo "The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy mouse."|awk '!a[substr($0,1,40)]++'
The quick brown fox jumps over the lazy dog
FIELDWIDTHS
と を使用した 2 つの代替方法FPAT
:
awk '!a[$1]++' FIELDWIDTHS=40
awk '!a[$1]++' FPAT='.{40}'