How to Replace a Whole Line with Sed?

Suppose I have a file with lines

aaa=bbb

Now I would like to replace them with:

aaa=xxx

I can do that as follows:

sed "s/aaa=bbb/aaa=xxx/g"

Now I have a file with a few lines as follows:

aaa=bbb
aaa=ccc
aaa=ddd
aaa=[something else]

How can I replace all this lines aaa=[something] with aaa=xxx using sed?

2

6 Answers

Try this:

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

You can also use sed's change line to accomplish this:

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

This will go through and find any lines that pass the aaa= test, which means that the line contains the letters aaa=. Then it replaces the entire line with aaa=xxx. You can add a ^ at the beginning of the test to make sure you only get the lines that start with aaa= but that's up to you.

4

Like this:

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

If you want to guarantee that the aaa= is at the start of the line, make it:

sed 's/^aaa=.*/aaa=xxx/'
2
sed -i.bak 's/\(aaa=\).*/\1"xxx"/g' your_file

If you would like to use awk then this would work too

awk -F= '{$2="xxx";print}' OFS="\=" filename
1

This might work for you:

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
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest