我正在比较两个变量,变量1和变量2。如果两个变量之间存在重复项,我想删除变量中出现重复项的整行变量1.
例如:
variable1
-----
aaa*
bbb
ccc*
ddd
variable2
-----
aaa*
bbb
我的预期输出是:
variable1
-----
ccc*
ddd
我目前得到的输出:
variable1
------
aaa*
ccc*
ddd
这是我的脚本:
echo "$variable2" | sed "/"$variable1"/d" >> output.txt
为什么我的 variable1 参数没有捕获字符串末尾的通配符?
让你的变量在它们自己的文件中
$ cat var1.txt
aaa*
bbb
ccc*
ddd
$ cat var2.txt
aaa*
bbb
可以使用comm
(COMMON( 命令来隔离两个文件的共同点或不共同点。
$ comm -23 var1.txt var2.txt
ccc*
ddd
标志 -23 表示不打印第二或第三输出列 其中
- 第一列是第一个文件特有的行
- 第二列是第二个文件特有的行
- 第三列是两个文件共有的行
两个文件都必须排序,否则comm
会投诉。