Ami*_*ian 1 diff awk grep sed file-comparison
我试图从两个文件中打印一些不匹配的字符串,其中在我的第一个文件中有一些整数值的字符串用空格分隔,我的第二个文件也有一些字符串值与第一个文件中的一些字符串值匹配,但是前面没有指定任何整数。
使用以下awk并diff命令我试图用时第二个比较让我的第一个文件的无与伦比的数据。
使用awk它会产生第一个文件的内容,基本上它会打印传递给awk命令的最后一个参数的内容。
awk -F, 'FNR==NR {a[$1];next} !($0 in a)' f2 f1
Run Code Online (Sandbox Code Playgroud)
使用diff它会产生第二个文件的内容,这里它将打印传递的第一个参数的内容。
diff --changed-group-format='%<' --unchanged-group-format='' f2 f1
Run Code Online (Sandbox Code Playgroud)
f1
papaya 10
apple 23
Moosumbi 44
mango 32
jackfruit 15
kiwi 60
orange 11
strawberry 67
banana 99
grapes 21
dates 6
Run Code Online (Sandbox Code Playgroud)
f2
apple
mango
kiwi
strawberry
Run Code Online (Sandbox Code Playgroud)
预期结果
papaya 10
Moosumbi 44
jackfruit 15
orange 11
banana 99
grapes 21
dates 6
Run Code Online (Sandbox Code Playgroud)
这是在 awk 中很常见的事情:将 f2 中的值读入数组,然后在处理 f1 时,只打印 f2 数组中不存在第一个字段的行:
awk 'NR == FNR {f2[$1]; next} !($1 in f2)' f2 f1
Run Code Online (Sandbox Code Playgroud)
我也打算建议grep来自@shellter的命令,但他打败了我(-w尽管你应该添加选项,以匹配整个单词)。