我正在使用以下脚本来对已排序集中的唯一字符串进行计数。最终记录的特殊AWK命令
awk '{if (p==$1) print 0,p;else print 1,p} {p=$1}' 1.txt > 2.txt
Input
a
a
a
b
c
c
d
d
d
output
0 a
0 a
1 a
1 b
0 c
1 c
0 d
0 d
0 d
我使用的是1到指定当一组独特的结束和一个新的开始,不过awk不将1添加到最后一集,因为没有下一行来比较它。当没有下一行时,我可以指定一种特殊行为吗?
目前我在shell脚本后面的步骤中添加了处理这个问题的方法,但是我想要一种在awk脚本中执行的方法。
lines=`wc -l sort.txt| cut -d " " -f 1`
awk -v a=$lines '{if (p==$1) print 0,p;if (p!=$1||NR==a) print 1,p} {p=$1}' sort.txt > index.txt
不是很清楚你想要什么,因为你的输入文件没有返回输出部分指示的内容。你能交叉检查吗? – fedorqui
尽我所知,他的输入与他的输出相匹配。他预先在每一行加上0或1。 –
@fedorqui感谢您的支持。由于同样的问题导致我无法打印最后一行,因此我没有打印第一行。 – jeffpkamp