繁体   English   中英

sed用于替换另一个文件内容中的单词

[英]Sed to replace a word from another file content

嗨我正在寻找一些来自大师的sed的帮助,基本上我git两个文件

First :- serial.txt
second :- info.txt

文件serial.txt具有唯一的信息。 和文件info.txt

"http://irequestedserver1?u=user:p=123"
"http://irequestedserver2?u=user:p=123"
and more and more

我想用第一个文件serial.txt中存储的信息替换用户词。

假设serial.txt包含一行信息,用于info.txt 所有行:

 sed -r 's/\?u=[^:]+:/\?u='"$(tr -d '\n' < serial.txt)"':/' info.txt

如果您的serial.txt文件包含名称,那么您可以尝试这样的事情:

$ cat serial.txt 
jaypal

$ cat info.txt 
"http://irequestedserver1?u=user:p=123"
"http://irequestedserver2?u=user:p=123"

$ awk 'NR==FNR{a[$1];next}{for (name in a) {sub(/u=.*:/,"u="name":")}}1' serial.txt info.txt 
"http://irequestedserver1?u=jaypal:p=123"
"http://irequestedserver2?u=jaypal:p=123"

使用sed

var=$(<serial.txt)
sed -r "s/(u=user:)([^\"]*)/\1${var}/" info.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM