Команда Linux sed заменяет строку регулярного выражения

Успех!

Интересно, что не было необходимости использовать -X-аргумент...

Из удаленной системы:

ssh RPi

Тогда сделайте:

DISPLAY=:0 python myapp.py

Спасибо обоим ответившим!

0
26.02.2021, 13:50
1 ответ

вы смешиваете регулярное выражение grepи замену sed.

используйте либо

sed -e '/db\.username/s/"[^"]*"/"foo"/' txt
db.username="foo"
db.password="toto"

где

  • /db\.username/сообщить sed, чтобы он работал в строке, где db.username(.является специальным символом в sed)
  • sзаменить
  • "[^"]*"цитата, любое количество не кавычек, цитата по
  • "foo"
  • /db.username/будет соответствовать db_username, dbXusername....

или

sed -e 's/db\.username="[^"]*"/db.username="foo"/' txt
db.username="foo"
db.password="toto"

Кроме того, sedможет захватывать шаблон

sed -e 's/db\.username="\([^"]*\)"/usename is \1/' txt
usename is tata
db.password="toto"
  • \( \)захватить текст
  • \1использовать первый захваченный текст

grepтоже можно

grep -Eo '"[^"]*"' txt
"tata"
"toto"
1
18.03.2021, 22:28

Теги

Похожие вопросы