Unix 对包含重复图案的行进行计数
我有一个文件(file.txt),其中包含10行,其中可能包含某个位置(14-17)的重复模式Unix 对包含重复图案的行进行计数,unix,awk,sed,filtering,Unix,Awk,Sed,Filtering,我有一个文件(file.txt),其中包含10行,其中可能包含某个位置(14-17)的重复模式 fsdf sfkljkl4565 fjjf lmlkfdm1235 fkljfgdfgdfg6583 eretjioijolj6933 IJSFOI4565 dgodiiopkpok6933 fsj opkjfiej4565 IHFZEJIJF4565 dfsdkfjlfeff1235 DIJDIJDZ4565 所需的输出是对包含图案的行进行计数: 发生模式 5 4565 2
fsdf sfkljkl4565
fjjf lmlkfdm1235
fkljfgdfgdfg6583
eretjioijolj6933
IJSFOI4565
dgodiiopkpok6933
fsj opkjfiej4565
IHFZEJIJF4565
dfsdkfjlfeff1235
DIJDIJDZ4565
所需的输出是对包含图案的行进行计数:
发生模式
5 4565
2 1235
1 6583
2 6933
我已尝试筛选该文件
cat File.txt | cut -c14-17 | sort -n -K1,1-1,3 >> File_Filtered.txt
我需要您的帮助来添加第一列(#出现次数)要获得重复次数,请使用
uniq-c
。因此,请尝试:
$ cut -c13-17 File.txt | sort -n | uniq -c | sort -nr
5 4565
2 6933
2 1235
1 6583
以上是使用Linux和GNU实用程序测试的。(根据示例代码判断,您可能正在使用不同的工具。)
包括标题
以下内容包括标题,并使用列-t
确保所有内容都排列整齐:
$ { echo '#occurences pattern'; cut -c13-17 File.txt | sort -n | uniq -c | sort -nr; } | column -t
#occurences pattern
5 4565
2 6933
2 1235
1 6583
谢谢,伙计,效果很好,你知道如何添加标题吗?@technopathe是的。我刚刚添加了包含headers.Ooops的代码,我试过了,但在脚本文件中不起作用。尽管有指挥的功能line@technopathe它应该在脚本中工作。请给我更多关于你如何使用它的细节。Awk是一种瑞士军刀+1.
$ awk '{cnt[substr($0,13)]++} END{for (i in cnt) print cnt[i], i}' file
2 6933
1 6583
5 4565
2 1235