1

我想知道如何在这种情况下使用替换。我有 2 个名为myfile.txtresponsefile.txt的文件,如下所示。

我的文件.txt

user=myname
user_1=yourname
group=mygroup
group_1=yourgroup

响应文件.txt

#Please fill the user id details.
user=
#user_1=    

#Please fill the group id details.
group=
#group_1=

现在,使用上述两个文件希望在替换匹配模式后具有以下最终结果。responsefile.txt 内容应该是完整的,只是匹配的模式应该以 myfile.txt 中提供的详细信息为前缀,或者只替换整个匹配行,因为两个文件中的模式相同。

responsefile.txt(新文件替换/替换为模式)

#Please fill the user id details.
user=myname
user_1=yourname    
#Please fill the group id details.
group=mygroup
group_1=yourgroup

模式将没有散列或带有散列,因此必须在匹配时删除散列。请注意文件 responsefile.txt 的长度约为 604L、16481C

请建议,希望有简单的解决方案,因为实际场景中的内容会有100多个类似的模式。以上只是举例。

谢谢拉杰什

4

1 回答 1

0

这个 awk 应该可以工作:

awk -F '=' 'FNR==NR{a[$1]=$2;next} !($1 in a){print} ($1 in a){print $0 a[$1]}' myfile.txt responsefile.txt

扩展形式:

awk -F '=' 'FNR == NR {
   a[$1] = $2;
   next
}
!($1 in a) {
   print
}
($1 in a) {
   print $0 a[$1]
}' myfile.txt responsefile.txt

输出:

'#'Please fill the user id details.
'#'Here is example user=urname.
user==myname

'#'Please fill the group id details.
'#'Here is example group=urgroup.
group==mygroup
于 2013-08-17T19:34:39.190 回答