Linux系统sort和uniq命令联合使用

Linux系统sort和uniq命令联合使用,第1张

给定两个文件 a.txt 和 b.txt ,每行是一个记录(假设没有重复),要求输出两集合的交集、并集、差集,输出的结果只包括唯一项。

交集定义为同时出现在两个文件中的记录项;

并集定义为出现在任何一个文件中的记录项;

差集( A-B )定义为出现在A中而且不出现在B中的记录;

对称差集定义为只出现在一个文件中的记录;

假设 a.txt 包括 a, c, b 三行。假设 b.txt 包括 d, e, c, b 四行。

交集 ,把两个文件放到一起排序,只输出次数多于一次的项:

$ sort a.txt b.txt | uniq -d

并集 ,把两个文件放到一起排序,重复的项只算一次:

$ sort a.txt b.txt | uniq

差集(A-B) ,把B的元素重复2份和A的元素放到一起排序,只输出出现一次的项:

$ sort a.txt b.txt b.txt | uniq -u

对称差 ,把两个文件放到一起排序,只输出出现一次的项:

$ sort a.txt b.txt | uniq -u

指定分隔符(-t)及基于哪一列(-k)、基于数值(-n) 、逆序(-r)进行排序

#排序之后删除了重复行,同时在行首位置输出该行重复的次数:

执行命令:sort testfile | uniq -c ,输出结果如下

#仅显示存在重复的行,并在行首显示该行重复的次数:

执行命令:sort testfile | uniq -dc,输出结果如下

#仅显示没有重复的行:

执行命令:sort testfile | uniq -u,输出结果如下

具体的方法如下:

若B行等价于A,则B可由A经有限次行运算得到。因此,B的行向量必为A的行向量的线性组合。所以,B的行空间必为A的行空间的子空间,因为A行等价于B,由相同的原因,A的行空间是B的行空间的子空间。

A的行空间的维数称为矩阵A的秩(rank),为求矩阵的秩,可以将矩阵化为行阶梯形矩阵,行阶梯形矩阵中的非零行将构成行空间的一组基。将A化为行阶梯形,得到矩阵显然,(1,-2,,3)和(0,1,5)构成的矩阵列空间的交集。

可以利用A的行阶梯形求A的列空间的一组基。只需求中对应于首1元素的列即可。A中的相应列将是线性无关的,并构成A的列空间的一组基。

注意: 行阶梯形仅告诉A的哪一列用于构成基,但不能用的列作为基向量,这是因为和A一般有不同的列空间交集。

矩阵列空间的性质:

假设M是一个m×n阶矩阵,其中的元素全部属于域K,也就是实数域或复数域。如此则存在一个分解,其中U是m×m阶酉矩阵;Σ是m×n阶实数对角矩阵;而V*,即V的共轭转置,是n×n阶酉矩阵。这样的分解就称作M的奇异值分解。Σ对角线上的元素Σi,i即为M的奇异值。常见的做法是将奇异值由大而小排列。如此Σ便能由M唯一确定了。

在线性代数中,三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。

在线性代数中,相似矩阵是指存在相似关系的矩阵。相似关系是两个矩阵之间的一种等价关系。两个n×n矩阵A与B为相似矩阵当且仅当存在一个n×n的可逆矩阵P。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8462807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存