shell 如何让awk转义文件分隔符=

ugmeyewa  于 2023-03-24  发布在  Shell
关注(0)|答案(1)|浏览(108)

我需要比较两个文件之间的差异。考虑以下文件:
old.properties 文件包含:

# comment
url=https://test.org/#,https://test.org:id=123

new.properties 文件包含:

# comment
url=#

我最后想要的结果:

# comment
url=https://test.org/#,https://test.org:id=123

我使用了以下命令:

awk -F= 'NR==FNR {if ($2!="") a[$1]=$2; next} $1 in a {$2=a[$1]} {print $0}' OFS== old.properties new.properties >old_new.txt

但是URL中的equals(=)产生了一个问题。我得到:

url=https://test.org,https://test.org:id
ogsagwnx

ogsagwnx1#

您可以使用awk

awk -F= 'NR==FNR {if ($2!="") a[$1]=$0; next}
   /^#/ {print; next}
   $1 in a {print a[$1]}' old.properties new.properties

# comment
url=https://test.org/#,https://test.org:id=123

相关问题