Подтвердить что ты не робот

Как заменить целую строку на sed?

Предположим, что у меня есть файл с строками

aaa=bbb

Теперь я хотел бы заменить их на:

aaa=xxx

Я могу сделать это следующим образом:

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

Теперь у меня есть файл с несколькими строками следующим образом:

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

Как заменить все эти строки aaa=[something] на aaa=xxx с помощью sed?

4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

Вы также можете использовать строку sed change, чтобы выполнить следующее:

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

Это пройдет и найдет строки, которые проходят тест aaa=, что означает, что строка содержит буквы aaa=. Затем он заменяет всю строку на aaa = xxx. Вы можете добавить ^ в начале теста, чтобы убедиться, что вы получаете только строки, начинающиеся с aaa=, но это зависит от вас.

Ответ 3

Вот так:

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

Если вы хотите гарантировать, что aaa= находится в начале строки, сделайте это:

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

Ответ 4

Если вы хотите использовать awk, тогда это тоже будет работать

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

Ответ 5

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

Ответ 6

Это может сработать для вас:

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