【发布时间】:2013-05-01 20:56:38
【问题描述】:
使用uniq,您可以选择仅比较第一个N 字符
使用awk可以达到同样的效果吗?我读
this example
awk '!a[$0]++'
但它会比较整行。
【问题讨论】:
使用uniq,您可以选择仅比较第一个N 字符
使用awk可以达到同样的效果吗?我读
this example
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 和FPAT 的两种选择:
awk '!a[$1]++' FIELDWIDTHS=40
awk '!a[$1]++' FPAT='.{40}'
【讨论】:
substr 解决方案的完全有效替代方案。