Unix命令“uniq”& “分类”

时间:2012-10-01 14:40:36

标签: linux sorting unix command uniq

我们知道

uniq [options] [file1 [file2]]

从已排序的file1中删除重复的相邻行。选项-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

任何人都可以帮我解释如何按此顺序输出书名(无号码)吗?

3 个答案:

答案 0 :(得分:2)

uniq -c filename | sort -k 1nr | awk '{$1='';print}'

答案 1 :(得分:2)

您也可以使用sed,如下所示:

uniq -c filename | sort -k -1nr | sed 's/[0-9]\+ \(.\+\)/\1/g'

测试:

echo "34 Data Structure" | sed 's/[0-9]\+ \(.\+\)/\1/g'
Data Structure

这也可以通过简化的正则表达式(William Pursell提供)来实现:

echo "34 Data Structure" | sed 's/[0-9]* *//'
Data Structure

答案 2 :(得分:0)

为什么要使用n=2 import numpy as np from scipy.optimize import minimize def det(x): A=np.zeros((n,n)) for i in range(n): for j in range(n): A[i,j]=x[2*i+j] return np.linalg.det(A) x0=[.01,-.01,.02,-.1] b=(-0.5,0.5) bnds=[b,b,b,b] sol=minimize(det(x),x0,method='SLSQP',bounds=bnds) print(sol) 打印出现的次数,然后又想通过一些割/ awk / sed舞来消除?

相反,您可以使用

uniq -c

还是某些系统随附了不支持sort -u $file1 $file2 /path/to/more_files_to_glob* 的{​​{1}}版本?