【发布时间】:2017-04-30 01:41:41
【问题描述】:
例如我有一个类似的文件:
apple
apple
strawberry
我想要实现的是打印连续的行(apple)并计算它连续的次数(2),如下所示:apple-2 using awk。
到目前为止,我的代码是这样的,但它执行以下操作:apple1-apple1。
awk '{current = $NF;
getline;
if($NF == current) i++;
printf ("%s-%d",current,i) }' $file
提前谢谢你。
【问题讨论】:
-
你能澄清一下你的输入文件是什么样的吗?您的示例表明文件中有一行,包含 3 个单词。相反,您的文件是否有 3 行,每行一个单词?基本上,这是您想要的输出:
uniq -c infile | awk '{ print $2 , $1 }'吗? -
非常抱歉,我打错了输入文件。是的,你是对的,我每行只有一个单词,所以 3 行。
-
行中的每个单词前面是否有连字符
-? -
不,我只是想列出一个清单给你看,但我是这个网站的新手,我失败了,抱歉。 @michael_n 你给我的输出几乎是我想要的,但我只想打印连续的单词(一次)以及它连续的次数。希望我能说清楚。
-
@MattPhilips 您可以像使用 awk 代码一样编辑问题并正确格式化输入文件。