Linux Unix命令";uniq"&&引用;排序“;
如我们所知Linux Unix命令";uniq"&&引用;排序“;,linux,sorting,unix,command,uniq,Linux,Sorting,Unix,Command,Uniq,如我们所知 uniq [options] [file1 [file2]] 它将从已排序的文件1中删除重复的相邻行。选项-c将每行打印一次,计算每行的实例数。因此,如果我们得到以下结果: 34 Operating System 254 Data Structure 5 Crypo 21 C++ 1435 C Language 589 Java 1.6 我们使用“sort-1knr”对上述数据进行排序,结果如下: 1435 C Lang
uniq [options] [file1 [file2]]
它将从已排序的文件1中删除重复的相邻行。选项-c将每行打印一次,计算每行的实例数。因此,如果我们得到以下结果:
34 Operating System
254 Data Structure
5 Crypo
21 C++
1435 C Language
589 Java 1.6
我们使用“sort-1knr”对上述数据进行排序,结果如下:
1435 C Language
589 Java 1.6
254 Data Structure
34 Operating System
21 C++
5 Crypo
有谁能帮我解决一下如何按此顺序只输出书名(无编号)?您也可以使用
sed
,如下所示:
uniq -c filename | sort -k -1nr | sed 's/[0-9]\+ \(.\+\)/\1/g'
测试:
这也可以通过简化的正则表达式实现(由William Pursell提供):
您也可以使用
sed
,如下所示:
uniq -c filename | sort -k -1nr | sed 's/[0-9]\+ \(.\+\)/\1/g'
测试:
这也可以通过简化的正则表达式实现(由William Pursell提供):
为什么要使用
uniq-c
打印出现次数,然后通过一些剪切/awk/sed舞蹈将其删除
相反,你可以使用
sort -u $file1 $file2 /path/to/more_files_to_glob*
或者某些系统是否配备了不支持
-u
的sort
版本?为什么要使用uniq-c
打印发生次数,然后使用剪切/awk/sed舞蹈将其删除
相反,你可以使用
sort -u $file1 $file2 /path/to/more_files_to_glob*
或者有些系统附带的
sort
版本不支持-u
?cut
是一个神奇的词(其中之一)。我认为它不起作用,因为数字前面有几个空格,您如何识别字段?使用“cut-d”—f2“?它将不返回任何内容,例如“cut-c9-”,它将忽略数字,但我们必须知道计数列中的确切字符数是的,我们需要知道使用cut
的宽度。您的意思是-k1nr
,而不是-1knr
,对吗?另外,感谢您的有用命令cut
是一个神奇的词(其中之一)。我认为它不会起作用,因为数字前面有几个空格,你如何识别字段?使用“cut-d”—f2“?它将不返回任何内容,例如“cut-c9-”,它将忽略数字,但我们必须知道计数列中的确切字符数是的,我们需要知道使用cut
的宽度。您的意思是-k1nr
,而不是-1knr
,对吗?另外,感谢您的有用命令!不使用“awk”命令怎么样?只使用“uniq”、“sort”、“tr”、“wc”、“head”、“tail”你已经解释了为什么cut
在你对Michael Krelin的评论中是不好的。您可以使用-c
选项,但我不想依赖计数列中的确切字符数。cut
不好,但这是最简单的方法。我觉得这个解决方案很好,工具也很合适。当然,您可以在和读取时使用执行某些操作,但实际上,awk
正是执行此任务的正确工具。不使用“awk”命令如何?只使用“uniq”、“sort”、“tr”、“wc”、“head”、“tail”你已经解释了为什么cut
在你对Michael Krelin的评论中是不好的。您可以使用-c
选项,但我不想依赖计数列中的确切字符数。cut
不好,但这是最简单的方法。我觉得这个解决方案很好,工具也很合适。当然,您可以在和读取时使用来做一些事情,但是实际上,awk
正是执行此任务的合适工具。这可以大大简化:sed的/[0-9]**/g'
的确!,虽然您发布的(带有*)在我的测试中不起作用,但它在+中起作用,我在我的回答中添加了这一点,谢谢:-)在简化版本中不能有g
标志。这会让人大吃一惊,比如“海底20000联赛”。(我把它包括进去的错误;肌肉记忆很难消失。)这可以大大简化:sed的//[0-9]**/g'
的确如此!,虽然您发布的(带有*)在我的测试中不起作用,但它在+中起作用,我在我的回答中添加了这一点,谢谢:-)在简化版本中不能有g
标志。这会让人大吃一惊,比如“海底20000联赛”。(我把它包括在内的错误;肌肉记忆很难消失。)
sort -u $file1 $file2 /path/to/more_files_to_glob*