![需要 sed 或 perl 命令来替换以特定文本开头的行](https://linux22.com/image/181066/%E9%9C%80%E8%A6%81%20sed%20%E6%88%96%20perl%20%E5%91%BD%E4%BB%A4%E6%9D%A5%E6%9B%BF%E6%8D%A2%E4%BB%A5%E7%89%B9%E5%AE%9A%E6%96%87%E6%9C%AC%E5%BC%80%E5%A4%B4%E7%9A%84%E8%A1%8C.png)
我正在寻找 sed 或 perl 命令来查找多个服务器上的文件中以特定文本开头的行,然后替换整行。这些行始终以相同的字符串开头,但其余部分可能不同。所以我需要一些与开头相当匹配的东西,然后替换所有内容。
例如
服务器1:我的文件.txt
SAMail: [email protected]
服务器2:我的文件.txt
SAMail: [email protected]
服务器3:我的文件.txt
SAMail: [email protected]
file.txt
我需要一个命令在所有三台服务器上的My 中查找“SAMail:”并替换为SAMail: [email protected]
答案1
sed
如果我理解正确的话,这是一种可能性:
输入
SAMail: [email protected]
foo: [email protected]
foo SAMail
sed '/^SAMail/s;[^ ]*$;[email protected];' "My file.txt"
输出:
SAMail: [email protected]
foo: [email protected]
foo SAMail