Ошибка удаления Sed между двумя конкретными символами - PullRequest
0 голосов
/ 10 сентября 2018

у меня на foo.txt

Если я делаю cat get.txt У меня есть следующие

SCALARS md.100 int

Я хочу удалить .100 между md и int и получить вывод как

SCALARS md int

Как я могу это изменить?

Я пытался sed "s/md.*int //g" get.txt

, который ничего не меняет. Я получил это как вывод

SCALARS md.100 int

Кто-нибудь может объяснить, почему он не работает и как лучше всего это сделать?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018
sed 's/md\..* int/md int/' get.txt

Заменяет md., любые символы (.*) и int (с начальным пробелом) на md int.


См .: FAQ по регулярным выражениям переполнения стека

0 голосов
/ 10 сентября 2018

Ваше выражение sed соответствует больше, чем вы хотите.Кроме того, если вы хотите записать в другой файл, вам нужно предоставить свой файл для анализа и направить вывод в другой файл.Должно работать следующее:

sed -e 's/\.100//g' foo.txt > bar.txt

Удалит «.100» и запишет в новый отредактированный файл «bar.txt», оставив «foo.txt» без изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...