更改 uniq -c 输出中的列顺序
Change the order of columns in the output of `uniq -c`
我正在使用这个脚本来读取文件并显示文件中的唯一名称,还显示该名称在文件中存在的次数(计数)
john
john
William
wad
William
john
wad
john
wad
john
William
john
wad
john
wad
wad
john
john
cat student.txt | awk '{print }' | sort | uniq -c | sort -nr | head -n 10
它的输出:
9 John
6 Wad
3 William
我想更改此格式,我想要第一个名称然后是计数,我如何使用上面的脚本执行此操作
John 9
Wad 6
William 3
附加到您的命令:
| awk '{print ,}'
使用 Perl:
计算每个输入行出现次数的命令,将输出从最频繁到最不频繁排序,并打印每行后跟计数(tab-delimited):
echo William Wad John William John William William | xargs -n1 | \
sort | uniq -c | sort -nr | \
perl -lane 'print join "\t", reverse @F'
打印:
William 4
John 2
Wad 1
Perl one-liner 使用这些命令行标志:
-e
:告诉 Perl 查找代码 in-line,而不是在文件中。
-n
:一次循环输入一行,默认分配给 $_
。
-l
: 在执行代码 in-line 之前去除输入行分隔符(默认情况下在 *NIX 上为 "\n"
),并在打印时附加它。
-a
: 在空格或 -F
选项中指定的正则表达式上将 $_
拆分为数组 @F
。
print join "\t", reverse @F
:从右到左阅读:反转数组 @F
(输入字段),将选项卡上的元素连接成一个字符串,然后打印该字符串。
要用空白替换制表符,请使用:
print join " ", reverse @F
你的烟斗太长了。 awk 有用于此目的的关联数组:
$ awk '{++count[]} END {for (name in count) print name, count[name]}' student.txt |
sort -nr -k 2
john 9
wad 6
William 3
我正在使用这个脚本来读取文件并显示文件中的唯一名称,还显示该名称在文件中存在的次数(计数)
john
john
William
wad
William
john
wad
john
wad
john
William
john
wad
john
wad
wad
john
john
cat student.txt | awk '{print }' | sort | uniq -c | sort -nr | head -n 10
它的输出:
9 John
6 Wad
3 William
我想更改此格式,我想要第一个名称然后是计数,我如何使用上面的脚本执行此操作
John 9
Wad 6
William 3
附加到您的命令:
| awk '{print ,}'
使用 Perl: 计算每个输入行出现次数的命令,将输出从最频繁到最不频繁排序,并打印每行后跟计数(tab-delimited):
echo William Wad John William John William William | xargs -n1 | \
sort | uniq -c | sort -nr | \
perl -lane 'print join "\t", reverse @F'
打印:
William 4
John 2
Wad 1
Perl one-liner 使用这些命令行标志:
-e
:告诉 Perl 查找代码 in-line,而不是在文件中。
-n
:一次循环输入一行,默认分配给 $_
。
-l
: 在执行代码 in-line 之前去除输入行分隔符(默认情况下在 *NIX 上为 "\n"
),并在打印时附加它。
-a
: 在空格或 -F
选项中指定的正则表达式上将 $_
拆分为数组 @F
。
print join "\t", reverse @F
:从右到左阅读:反转数组 @F
(输入字段),将选项卡上的元素连接成一个字符串,然后打印该字符串。
要用空白替换制表符,请使用:
print join " ", reverse @F
你的烟斗太长了。 awk 有用于此目的的关联数组:
$ awk '{++count[]} END {for (name in count) print name, count[name]}' student.txt |
sort -nr -k 2
john 9
wad 6
William 3