Linux

需要一個 sed 或 perl 命令來替換以某些文本開頭的行

  • October 1, 2020

我正在尋找 sed 或 perl 命令以在多個伺服器上的文件中查找以特定文本開頭的行,然後替換整行。這些行總是以相同的字元串開頭,但其餘的可能不同。所以我需要一些與開頭相匹配的東西,然後替換一切。

例如

伺服器 1:我的文件.txt

SAMail: root@root.com

伺服器 2:我的文件.txt

SAMail: none@none.com

伺服器 3:我的文件.txt

SAMail: help@help.com

我需要一個在所有三台伺服器上的 My 中找到“SAMail:”file.txt並替換為的命令SAMail: test@test.com

sed如果我理解正確,這是一種可能性:

輸入

SAMail: none@none.com
foo: foo@foo.com
foo SAMail

sed '/^SAMail/s;[^ ]*$;test@test.com;' "My file.txt"

輸出:

SAMail: test@test.com 
foo: foo@foo.com
foo SAMail

引用自:https://unix.stackexchange.com/questions/612392