awk - манипуляция с файлом, где необходимо удалить шаблон - PullRequest
0 голосов
/ 15 июня 2019

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

www.test.com
www2.test.com
www.foo.com
www3.foo.com
www.example.com

Мне нужно удалить «www.» из каждой записи, где он присутствует в файле, используя однострочное выражение awk, так что конечное состояние файла будет:

test.com
www2.test.com
foo.com
www3.foo.com
example.com

Ответы [ 2 ]

2 голосов
/ 15 июня 2019

Использование GNU awk 4.1.0 или более поздней версии:

awk -i inplace '{sub(/^www\./,"")} 1' file

Будет выполнено, как вы просили ... ", так что конечное состояние файла будет":

$ cat file
test.com
www2.test.com
foo.com
www3.foo.com
example.com
$

Или, если решение в одну строку sed в порядке:

sed -i 's/^www\.//' file
1 голос
/ 15 июня 2019

Не могли бы вы попробовать следующее.

awk  '{sub(/^www\./,"")} 1'  Input_file

Чтобы сохранить изменения в самом файле Input_file, добавьте как > tmp && mv tmp Input_file в коде выше.

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