比较2个文件中的字符串并在shell脚本中附加数据

时间:2016-01-21 09:33:33

标签: shell scripting sh

我有2个文件1.txt和2.txt

1.txt包含以下详细信息

user = 10
user2 = 20
user3 = 30

2.txt包含以下详细信息

user = 25MB
user2 = 30MB

我需要比较两个文件,如果字符串在文件中匹配它应该附加第一个文件中的数据,如果它不匹配则应该在shell脚本中附加0

期望的输出

user = 10 25MB
user2 = 20 30MB
user3 = 30 0MB

我正在使用命令:

awk 'FNR==NR{a[$1$2];next}!($1$2 in a)' 1.txt 2.txt

但没有获得所需的输出。我是shell脚本的新手,正在寻找完整的实现帮助。

你能帮我解释一下语法和实现吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

libopus

我选择以相反的顺序阅读文件$ awk 'NR == FNR { a[$1] = $3; next } { printf "%s = %s %s\n", $1, $3, ($1 in a ? a[$1] : "0MB") }' 2.txt 1.txt user = 10 25MB user2 = 20 30MB user3 = 30 0MB ,然后2.txt1.txt中的键和值存储在数组2.txt中。对于a中的每一行,如果存在,则使用与该键对应的数组中的值。