使用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
使用and 的两种选择FPAT
:
awk '!a[$1]++' FIELDWIDTHS=40
awk '!a[$1]++' FPAT='.{40}'