gpt4 book ai didi

bash - 如何根据匹配的关键字段用另一个文件中的行替换文本文件中的行?

转载 作者:行者123 更新时间:2023-11-29 09:16:55 24 4
gpt4 key购买 nike

输入.txt

1,Ram,Fail
2,John,Fail
3,Ron,Success

param.txt(新输入)

1,Sam,Success
2,John,Sucess

现在我想用 param.txt 中的行替换 input.txt 中的整行。第一列将充当主键。

输出.txt

1,Sam,Success
2,John,Sucess
3,Ron,Success

我试过

awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' input.txt param.txt > Output.txt 

但它正在合并文件内容。

最佳答案

这可能对你有用(GNU sed):

 sed 's|^\([^,]*,\).*|/^\1/c\\&|' param.txt | sed -f - input.txt

解释:

  • param.txt 转换为 sed 脚本,使用第一个字段作为地址以更改 input.txt 中的行。 s|^\([^,]*,\).*|/^\1/c\\&|
  • 针对 input.txt 运行脚本。 sed -f - input.txt

关于bash - 如何根据匹配的关键字段用另一个文件中的行替换文本文件中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com