【发布时间】:2018-04-17 10:26:47
【问题描述】:
我有一个来自 Unix uniq -c 命令的输出,该命令在每行的开头打印字符串的出现次数。该字符串表示由管道分隔的两个作者(例如,Aabdel-Wahab S|Abdel-Hafeez EH)。
1 Aabdel-Wahab S|Abdel-Hafeez EH
1 Aabdel-Wahab S|Abdulla AM
4 Aabdel-Wahab S|Ahmad AK
1 Aabdel-Wahab S|Mosalem FA
1 Aabye MG|Andersen AB
8 Aabye MG|Changalucha J
1 Aabye MG|Christensen DL
1 Aabye MG|Faurholt-Jepsen D
我需要 grep 出现次数并将其移动到行尾。例如:
Aabdel-Wahab S|Abdel-Hafeez EH|1
Aabdel-Wahab S|Abdulla AM|1
Aabdel-Wahab S|Ahmad AK|4
Aabdel-Wahab S|Mosalem FA|1
Aabye MG|Andersen AB|1
Aabye MG|Changalucha J|8
Aabye MG|Christensen DL|1
Aabye MG|Faurholt-Jepsen D|1
请注意,频率现在用竖线分隔。下面粘贴的是我在 Awk 中的单行代码:
awk '{num=$1;$1=""; sub(/^ /,""); print $0,"|",num;}' file
但是,Awk 在最终管道周围添加了额外的空格:
Aabdel-Wahab S|Abdel-Hafeez EH | 1
Aabdel-Wahab S|Abdulla AM | 1
Aabdel-Wahab S|Ahmad AK | 4
Aabdel-Wahab S|Mosalem FA | 1
Aabye MG|Andersen AB | 1
Aabye MG|Changalucha J | 8
Aabye MG|Christensen DL | 1
Aabye MG|Faurholt-Jepsen D | 1
知道如何继续(不需要使用 Awk)吗?
【问题讨论】:
标签: awk sed text-processing