使用 SED 和下一行的 Bash 脚本



我有两个文件,file1.txtfile2.txt。我想在 bash 脚本中使用sed和阅读行。我想用 file2.txt 中的第 1 行替换file1.txt中的第 1 行用户,依此类推......

文件1.txt:

xxxx1 <br>
xxxx2 <br>
xxxx3

文件2.txt:

{"Something":null,"ID":"user","group":{"id":"group1") <br>
{"Something":null,"ID":"user","group":{"id":"group1") <br>
{"Something":null,"ID":"user","group":{"id":"group1")

新 file2.txt 应该是这样的:

{"Something":null,"ID":"xxxx1","group":{"id":"group1") <br>
{"Something":null,"ID":"xxxx2","group":{"id":"group1") <br>
{"Something":null,"ID":"xxxx3","group":{"id":"group1")

有什么好主意吗?

使用awk很容易:

awk 'NR == FNR { user[FNR] = $1; next } { sub("user", user[FNR]); print }' file1.txt file2.txt

但是,您也可以使用 pastesed 来做到这一点:

paste file1.txt file2.txt | sed -r 's/([^ ]+)([^{]+)({.*)user(.*)/314/'

尝试使用以下命令:

 for data in `awk '{print NR":"$1}' file1.txt` ; do row=`cut -d":" -f1 <<< ${data}` ;user=`cut -d":" -f2 <<< ${data}` ;sed -i ''$row's/"user",/"'$user'",/g' file2.txt ; done

相关内容

  • 没有找到相关文章

最新更新