我有一个文件a.txt
,其中有
a,20
b,30
c,40
另一个b.txt
有
a,40
b,60
d,3
我需要遍历第一列,并检查第二个文件中是否不存在变量(此处不存在c
)并发送具有该变量名的邮件。
答案 0 :(得分:0)
要仅提取第一列,可以使用cut
:
cut -d, -f1 file.txt
-d
指定分隔符-f
指定要提取的列要检查一对文件共有的行,请使用comm
:
comm file1 file2
comm
输出三列:第一个列出了file1独有的内容,第二个列出了file2独有的内容,第二个都列出了两者。您可以通过指定列号作为参数来告诉comm
省略列。不过,comm
需要对输入文件进行排序。我通常在进行排序时将$LC_ALL
设置为C
以避免语言环境的影响。
所以,您的问题的答案是
comm -23 <(cut -f1 -d, a.txt | LC_ALL=C sort) <(cut -f1 -d, b.txt | LC_ALL=C sort)
答案 1 :(得分:0)
可能的"b"
解决方案:
awk