Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash UNIX中对文件进行排序和打印_Bash_Sorting_Scripting - Fatal编程技术网

在bash UNIX中对文件进行排序和打印

在bash UNIX中对文件进行排序和打印,bash,sorting,scripting,Bash,Sorting,Scripting,我有一个文件,有一堆路径,看起来是这样的: 7 /usr/file1564 7 /usr/file2212 6 /usr/file3542 我正在尝试使用排序拉出并打印出现次数最多的路径。以下是我目前的情况: cat temp| sort | uniq -c | sort -rk1 > temp 我不确定如何只打印最高次数。我还希望我的输出像这样打印: 7 1564 7 2212 7是出现的总数,其他数字是名称末尾的文件号。我对bash脚本比较陌生,因此非常感谢您的帮助 要仅发出输出

我有一个文件,有一堆路径,看起来是这样的:

7 /usr/file1564
7 /usr/file2212
6 /usr/file3542
我正在尝试使用
排序
拉出并打印出现次数最多的路径。以下是我目前的情况:

cat temp| sort | uniq -c | sort -rk1 > temp
我不确定如何只打印最高次数。我还希望我的输出像这样打印:

7 1564
7 2212

7是出现的总数,其他数字是名称末尾的文件号。我对bash脚本比较陌生,因此非常感谢您的帮助

要仅发出输出的第一行(具有最大的数字,因为您在前面进行的是反向数字排序),请通过
head-n1

要删除所有不是数字或空白的内容,请通过
tr-cd'0-9[:space:'


要仅筛选数字最大的值,允许存在多个值,请执行以下操作:

{
  read firstnum name && printf '%s\t%s\n' "$firstnum" "$name" 
  while read -r num name; do
    [[ $num = $firstnum ]] || break
    printf '%s\t%s\n' "$num" "$name"
  done
} < temp
{
读取firstnum name&&printf“%s\t%s\n'$firstnum”“$name”
读取时-r num name;执行
[$num=$firstnum]| |中断
printf“%s\t%s\n”$num“$name”
完成
}
要仅发出第一行输出(具有最大的数字,因为您在前面进行的是反向数字排序),请通过
头-n1

要删除所有不是数字或空白的内容,请通过
tr-cd'0-9[:space:'


要仅筛选数字最大的值,允许存在多个值,请执行以下操作:

{
  read firstnum name && printf '%s\t%s\n' "$firstnum" "$name" 
  while read -r num name; do
    [[ $num = $firstnum ]] || break
    printf '%s\t%s\n' "$num" "$name"
  done
} < temp
{
读取firstnum name&&printf“%s\t%s\n'$firstnum”“$name”
读取时-r num name;执行
[$num=$firstnum]| |中断
printf“%s\t%s\n”$num“$name”
完成
}
要仅发出第一行输出(具有最大的数字,因为您在前面进行的是反向数字排序),请通过
头-n1

要删除所有不是数字或空白的内容,请通过
tr-cd'0-9[:space:'


要仅筛选数字最大的值,允许存在多个值,请执行以下操作:

{
  read firstnum name && printf '%s\t%s\n' "$firstnum" "$name" 
  while read -r num name; do
    [[ $num = $firstnum ]] || break
    printf '%s\t%s\n' "$num" "$name"
  done
} < temp
{
读取firstnum name&&printf“%s\t%s\n'$firstnum”“$name”
读取时-r num name;执行
[$num=$firstnum]| |中断
printf“%s\t%s\n”$num“$name”
完成
}
要仅发出第一行输出(具有最大的数字,因为您在前面进行的是反向数字排序),请通过
头-n1

要删除所有不是数字或空白的内容,请通过
tr-cd'0-9[:space:'


要仅筛选数字最大的值,允许存在多个值,请执行以下操作:

{
  read firstnum name && printf '%s\t%s\n' "$firstnum" "$name" 
  while read -r num name; do
    [[ $num = $firstnum ]] || break
    printf '%s\t%s\n' "$num" "$name"
  done
} < temp
{
读取firstnum name&&printf“%s\t%s\n'$firstnum”“$name”
读取时-r num name;执行
[$num=$firstnum]| |中断
printf“%s\t%s\n”$num“$name”
完成
}
如果要避免排序,并且允许使用awk,则可以执行以下操作:

awk '{
 if($1>maxcnt) {s=$1" "substr($2,10,4); maxcnt=$1} else
 if($1==maxcnt) {s=s "\n"$1" "substr($2,10,4)}} END{print s}' \
temp

如果要避免排序,并且允许使用awk,则可以执行以下操作:

awk '{
 if($1>maxcnt) {s=$1" "substr($2,10,4); maxcnt=$1} else
 if($1==maxcnt) {s=s "\n"$1" "substr($2,10,4)}} END{print s}' \
temp

如果要避免排序,并且允许使用awk,则可以执行以下操作:

awk '{
 if($1>maxcnt) {s=$1" "substr($2,10,4); maxcnt=$1} else
 if($1==maxcnt) {s=s "\n"$1" "substr($2,10,4)}} END{print s}' \
temp

如果要避免排序,并且允许使用awk,则可以执行以下操作:

awk '{
 if($1>maxcnt) {s=$1" "substr($2,10,4); maxcnt=$1} else
 if($1==maxcnt) {s=s "\n"$1" "substr($2,10,4)}} END{print s}' \
temp


你还没有问过至少两个与这个问题相关的问题吗?。。。你对
最高出现率的标准是什么?
?这是我关于这个特定问题的第二个问题,但我决定删除它并制作一个新的,因为它措词不当,没有答案。如果你做得太多(特别是作为一个没有良好业绩记录的新用户),删除并替换最终会被禁止. 编辑问题以使其更好,而不是替换问题。顺便说一句,您不能使用与管道开始和结束相同的
temp
文件:管道首次设置时,目标文件将被清除,在管道开始处运行的程序启动之前。您是否已经询问了至少两个与此问题相关的其他问题?。。。你对
最高出现率的标准是什么?
?这是我关于这个特定问题的第二个问题,但我决定删除它并制作一个新的,因为它措词不当,没有答案。如果你做得太多(特别是作为一个没有良好业绩记录的新用户),删除并替换最终会被禁止. 编辑问题以使其更好,而不是替换问题。顺便说一句,您不能使用与管道开始和结束相同的
temp
文件:管道首次设置时,目标文件将被清除,在管道开始处运行的程序启动之前。您是否已经询问了至少两个与此问题相关的其他问题?。。。你对
最高出现率的标准是什么?
?这是我关于这个特定问题的第二个问题,但我决定删除它并制作一个新的,因为它措词不当,没有答案。如果你做得太多(特别是作为一个没有良好业绩记录的新用户),删除并替换最终会被禁止. 编辑问题以使其更好,而不是替换问题。顺便说一句,您不能使用与管道开始和结束相同的
temp
文件:管道首次设置时,目标文件将被清除,在管道开始处运行的程序启动之前。您是否已经询问了至少两个与此问题相关的其他问题?。。。你对
最高出现率的标准是什么?
?这是我关于这个特定问题的第二个问题,但我决定删除它并制作一个新的,因为它措词不当,没有答案。如果你做得太多(特别是作为一个没有良好业绩记录的新用户),删除并替换最终会被禁止. 编辑问题使其更好,而不是替换它们。顺便说一句,您不能使用与两个问题相同的
temp
文件