Новое в командах Linux .. Какой синтаксис я бы использовал для поиска и замены строки с каждой строкой, начинающейся с "Data Center:" Адресная информация, которая различается в каждой строке ", но заканчивается словом Site: и мне нужно сохранить подробности о сайте, которые следуют ниже ..
Пример:
Input.txt
Data Centre: 23 Mulberry lane, Washington Site: 9067 Green
Expected Output
Site: 9067 Green
Я нашел примеры gsub, но gsub недоступен в моей ОС.
Любая помощь приветствуется.
Mac
Если Вы будете использовать точку с запятой в качестве разделителя полей, что Вы хотите, то будет в последнем поле
awk -F ':' '/Site:/ { print "Site: ", $NF }'
Вот a sed
решение, которое использует расширенные регулярные выражения -r
и группы получения ()
->\1
:
sed -r 's/^Data Centre:.*(Site: .*)$/\1/' Input.txt
Если Вы хотите подавить вывод каких-либо других строк, которые могли бы появиться в файле:
sed -n -r 's/^Data Centre:.*(Site: .*)$/\1/p' Input.txt
Добавьте опцию -i.bak
чтобы сделать изменения и файл резервной копии одновременно, ot перенаправляют вывод в новый файл.