需要 sed 或 perl 命令来替换以特定文本开头的行

需要 sed 或 perl 命令来替换以特定文本开头的行

我正在寻找 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

相关内容