Sed 用包含多行字符串的txt文件的内容替换单词

Sed 用包含多行字符串的txt文件的内容替换单词,sed,awk,Sed,Awk,嗨,我使用awk有问题,我有两个文件info.txt和final.txt。 info.txt有一个唯一的no,final.txt有name address pass phone email第二个name address pass phone email 我想用info.txt的内容替换final.txt中出现的单词“pass” 现在我正在用这个 awk -v f="info" 'BEGIN {while (getline < f) txt=txt $0 "\n"} /pass/ {sub(

嗨,我使用awk有问题,我有两个文件info.txt和final.txt。 info.txt有一个唯一的no,final.txt有name address pass phone email第二个name address pass phone email

我想用info.txt的内容替换final.txt中出现的单词“pass” 现在我正在用这个

awk -v f="info" 'BEGIN {while (getline < f) txt=txt $0 "\n"} /pass/ {sub("pass", txt)}   1' final.txt.tmp > final.txt.tmp
awk-v f=“info”'BEGIN{while(getlinefinal.txt.tmp
现在,每当一行中出现单词“pass”时,它都会将整行内容与我只想替换的单词相对应

谢谢

这可能适合您(GNU-sed):


这将从
info.txt
生成一个sed脚本,然后针对
final.txt

运行sed脚本,请发布示例和您喜欢的输出。看起来您弄乱了文件名:info vs.info.txt和final.txt.tmp(作为输入文件)vs.final.txt。使用正确的文件名,它可以工作。另外,听起来你想要的是gsub,而不是sub。谢谢,我会再次解释我的问题,我的第一个文件info.txt(包含唯一的no)和其他final.txt(包含多行,其中一些单词需要在info.txt中替换为唯一的no)。示例info.txt有123个,final.txt有,我需要“pass”替换为文件“info.txt”的内容不起作用sed:unterminated{sed:cannotopen'-':没有这样的文件或目录,我正在查看我的第一个文件info.txt(包含唯一的No)和其他final.txt(包含多行,其中一些单词需要替换为info.txt中唯一的no)。示例info.txt有123,final.txt有localhost?u=pass:p=pass,我需要将“pass”替换为文件“info.txt”的内容
 sed ':a;$!{N;ba};s/\n/\\n/g;s|.*|s/pass/&/g|' info.txt | sed -f - final.txt