![如何替换以单词开头的行(并在新行中使用旧行)](https://linux22.com/image/1140093/%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E4%BB%A5%E5%8D%95%E8%AF%8D%E5%BC%80%E5%A4%B4%E7%9A%84%E8%A1%8C%EF%BC%88%E5%B9%B6%E5%9C%A8%E6%96%B0%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%97%A7%E8%A1%8C%EF%BC%89.png)
我有一个包含多行的文件,我想替换以新行开头但包含旧行的特定行。见下文。
例如,如果一行以(每行的 xyz 不同)开头
"#EXT-1,xyz"
我想要一条这样的线路
!group=12, "#EXT-1,xyz", name="#EXT-1,xyz"
这可能吗sed
?如果可以,怎么做?
答案1
有多种表述方式 - 其中之一是
sed '/^\"#EXT-1,.*\"/ s//!group=12, &, name=&/' file
如果要修改文件,请添加-i
或--in-place
开关
sed -i '/^\"#EXT-1,.*\"/ s//!group=12, &, name=&/' file