如何用sedreplace整个行?
假设我有一个带有行的文件
AAA BBB =
现在我想用下面的代码replace它们:
AAA = XXX
我可以这样做,如下所示:
sed“s / aaa = bbb / aaa = xxx / g”
现在我有一个文件,几行如下:
AAA BBB = AAA CCC = AAA DDD = aaa = [其他]
我怎样才能用aaa=xxx
replace所有这些行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