如何用sedreplace整个行?

假设我有一个带有行的文件

  AAA BBB = 

现在我想用下面的代码replace它们:

  AAA = XXX 

我可以这样做,如下所示:

  sed“s / aaa = bbb / aaa = xxx / g” 

现在我有一个文件,几行如下:

  AAA BBB =
 AAA CCC =
 AAA DDD =
 aaa = [其他] 

我怎样才能用aaa=xxxreplace所有这些行aaa=[something]使用sed

尝试这个:

 sed "s/aaa=.*/aaa=xxx/g" 

您也可以使用sed的更改行来完成此操作:

 sed -i "/aaa=/c\aaa=xxx" your_file_here 

这将通过并find任何通过aaa= test的行,这意味着该行包含字母aaa= 。 然后用aaa = xxxreplace整行。 您可以在testing开始时添加^ ,以确保您只能得到以aaa=开头的行,但这取决于您。

喜欢这个:

 sed 's/aaa=.*/aaa=xxx/' 

如果你想保证aaa=在行的开头,那么使它:

 sed 's/^aaa=.*/aaa=xxx/' 

如果你想使用awk那么这也可以

 awk -F= '{$2="xxx";print}' OFS="\=" filename 
 sed -i.bak 's/\(aaa=\).*/\1"xxx"/g' your_file 

这可能适合你:

 cat <<! | sed '/aaa=\(bbb\|ccc\|ddd\)/!s/\(aaa=\).*/\1xxx/' > aaa=bbb > aaa=ccc > aaa=ddd > aaa=[something else] ! aaa=bbb aaa=ccc aaa=ddd aaa=xxx