按“行内容”频率对文件进行排序

Sam*_*ich 2 bash sorting

假设有 3 个文本文件。

1.txt:

a
b
c
Run Code Online (Sandbox Code Playgroud)

2.txt:

f
c
d
Run Code Online (Sandbox Code Playgroud)

3.txt:

b
c
f
Run Code Online (Sandbox Code Playgroud)

如何按每个“行内容”的频率对它们进行排序?(如果按字母顺序发生碰撞)

结果:

c
b
f
a
d
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 5

您可以使用sortuniq按频率对行进行排序。

sort *.txt | uniq -c | sort -k1,1nr -k2 | sed 's/^ *[0-9]* //'
Run Code Online (Sandbox Code Playgroud)

第二个sort使用secondary-k2按字母顺序对相同频率的行进行排序。最后sed只是删除频率。

  • 不用担心,我在发布之前已经测试过:-) (2认同)