sed 命令替换以“//-----”开头的文件的第一行

sed 命令替换以“//-----”开头的文件的第一行

这个想法是:

如果文件 FILE.txt 的第一行以

//-----------

替换为

//----------- %TAG

为此,我使用了以下命令

sed -i "1s/.\/\/-----------/& %TAG/" FILE.txt

但这没有用。

有什么建议吗?

答案1

你已经很接近了:只需删除.你所说的以某个字符开头然后 // …

sed -i "1s/\/\/-----------/& %TAG/" FILE.txt

或更改分隔符以减少转义。

sed -i "1s#//-----------#& %TAG#" FILE.txt

答案2

你很接近。开头的点将匹配任何字符,这似乎是不需要的。为了使字符串仅在行开头匹配,正则表达式应以 开头^

sed -i "1s#^//-----------#& %TAG#" file.txt

使用 a#作为s命令分隔符简化了反引用。

相关内容