1

У меня есть файл, как это:

ins.pro.server.pro.net
ins.pro-server2.pro.net
ins.pro-server3.pro.net
ins.pro-server4.pro.net

Я бы хотел отследить этот файл, но исключив конкретную строку ".pro.net" из всех строк, чтобы это могло выглядеть так:

ins.pro-server
ins.pro-server2
ins.pro-server3
ins.pro-server4

Заранее спасибо за вашу помощь

PS: я использовал несколько опций sed раньше, но он также удалил первую часть из «ins.pro-server», оставив ее как «ins.-server»

2 ответа2

4

Использовать этот:

sed "s/\.pro\.net//g" file

Во-первых, для этого вам не нужен cat, во-вторых, обязательно используйте \. вместо просто . потому что точка означает совпадение с любым символом. Может показаться, что он работает, но он также будет соответствовать строке xproynet , что, вероятно, не то, что вам нужно.

-2

Я делаю это по памяти, но я считаю, что должно работать следующее:

файл cat $ | sed s/\. pro\.net//

Ссылка: учебник Седа Брюса Барнетта

MVP (ниже) является правильным. По какой-то причине моя обратная косая черта на точках не прошла (думаю, мне нужно от них убежать?). Кроме того, cat является излишним, потому что вы можете просто добавить аргумент файла в конце, как предложено MVP.

(Я бы прокомментировал его ответ, но у меня еще нет 50 повторений)(Обратные косые черты в моем ответе изначально отсутствовали, потому что я не избежал их)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .