1.09 输出两个文件A和B中相同的行、不同的行、A区别于B的行

思路:
1、如何输入要处理的文件A和B
2、如何排序现有的文件
3、如何获取A和B文件中相同的行
4、如何获取A和B中不同的行
5、如何获取A中区别于B的行
6、如何规整输出的文件内容,很明显会有制表符的存在
7、汇总脚本

下面一层层来解决

  1. 如何输入要处理的文件
[ $# -ne 1 ] && { echo "Usage: $(basename $0) need two arguments.";exit -1; }   
A=$1
B=$2  
  1. 如何排序现有的文件
    sort A -o A && sort B -o B

  2. 如何获取A和B文件中相同的行

输出两个文件的内容 #

comm A B

删除A和B的不同的内容 #

comm A B -1 -2

  1. 如何获取A和B文件中不同的内容 comm A B -3

  2. 如何获取A区别于B的内容
    comm A B -2 -3

  3. 如何规整输出的文件内容,很明显会有制表符的存在
    comm A B -3 | tr -d '\t'

  4. 汇总脚本

#!/bin/bash

jiaoji  ()  {
comm  $A  $B  -1  -2
}

qiucha  ()  {
comm  $A  $B   -3 | tr -d '\t'
}

chaji  ()  {
comm  $A  $B  -2  -3
}


[ $# -ne 2 ] && { echo "Usage: $(basename $0) need two arguments.";exit -1; }   
A=$1
B=$2 
sort  $A  -o $A
sort  $B  -o  $B

jiaoji
echo "------"
qiucha
echo "------"
chaji
echo "------"

上一页➡️

下一页➡️

Calendar Oct 19, 2023
Edit Edit this page
本站总访问量:  次 您是本站第  位访问者