输出2列

时间:2013-08-19 17:49:06

标签: bash

我正在努力做到这一点:

/mnt/Hector/Data/benign/binary/benign-pete/ af86df6737cf43a6bf5ab0f822791450    0   S040PDFv02  data.pdf    PDF document
/mnt/Hector/Data/benign/binary/benign-pete/ afd53ab9b77ffa1dd8ad365577bec497    0   S040PDFv02  data.pdf    PDF document
/mnt/Hector/Data/benign/binary/benign-pete/ b024027f366a3c7e567b3fdd94b892f2    0   S040PDFv02  data.pdf    PDF document

看起来像这样:

S036GDLv02 3
S040PDFv02 2
S043GUIv02 23
S046CONv02 1

我想让它显示每个唯一的文件,然后让它在两个整齐的列中输出紧邻它的文件类型的计数。

到目前为止我所拥有的是

cut -f 4 input.txt|sort| uniq | sed 2d;;

但是这只输出这样的数据:

S036GDLv02
S040PDFv02
S043GUIv02
S046CONv02

3 个答案:

答案 0 :(得分:4)

尝试使用uniq -c代替uniq,然后移除sed

答案 1 :(得分:4)

awk '{c[$4]++} END{for (v in c) print v, c[v];}'

这会计算第四列的唯一出现次数,然后将其打印出来。

答案 2 :(得分:1)

awk '{print $4,$5,$6}' test.txt | uniq -c | awk '{print $2, $1, $3, $4}'