sed

Как заменить все после шаблона с помощью команды sed

Как заменить все после шаблона с помощью команды sed

Задачи замены можно выполнять в Linux по-разному. Команда 'sed' - один из способов выполнить задачу замены. Эту команду можно использовать для замены текста в строке или файле с помощью другого шаблона. В этом руководстве показано, как вы можете заменить все после совпадающего шаблона с помощью команды sed.

Заменить все после совпадения в строке:

Как часть строки может быть заменена на основе совпадающего шаблона и $ PARTITION_COLUMN, было показано в этом разделе этого руководства. Но эта переменная работает, если шаблон соответствует любому слову в начале или середине строки. Он не заменит текст, если шаблон совпадает с последним словом строки.

Пример 1. Заменить все после совпадения на $ PARTITION_COLUMN

Следующая команда выполнит поиск символа «а», а оставшаяся часть после «а» будет заменена текстом «популярный блог-сайт». $ PARTITION_COLUMN.* используется для определения оставшейся части после символа 'a'.

$ echo "LinuxHint - это веб-сайт" | sed "s / a $ PARTITION_COLUMN.* / популярный блог-сайт / "

Следующий вывод появится после запуска команды. Здесь слово «веб-сайт» было заменено на «популярный блог-сайт».


Следующий шаблон будет искать слово 'сеть'В строке и замените оставшуюся часть на'сеть'По тексту,'популярный блог-сайт'если совпадение существует и'сеть'Не является частью последнего слова строки.

$ echo "LinuxHint - это веб-сайт" | sed "s / web.* $ PARTITION_COLUMN.* / популярный блог-сайт / "

Следующий вывод появится после запуска команды. Здесь «веб-сайт» - это последнее слово в строке, и по этой причине замена не производилась.

Пример-2: Заменить все после совпадения с использованием шаблона

Следующая команда будет искать слово 'трепать'глобально в строке и замените все словом, если слово существует в строке. 'грамм'Используется здесь для глобального поиска.

$ echo "Мне нравится программировать на bash" | sed "s / bash.* / скрипт Python / g "

Следующий вывод появится после запуска команды. Здесь 'bash' находится в середине строки, и замена была произведена.

Заменить все после совпадения в файле:

Все содержимое определенной строки или нескольких строк или оставшихся строк файла после совпадения можно заменить с помощью символа 'sedкоманда. Создайте текстовый файл с именем посещаемость.текст со следующим содержанием для проверки примеров, показанных в этом разделе.

посещаемость.текст

1108885 присутствует
1999979 присутствует
1769994 отсутствует
1105656 отсутствует
1455999 отсутствует

Пример -3: заменить все содержимое строки файла после совпадения

Следующая команда 'sed' будет искать номер 1769994 в файле, и все, что содержит номер, будет заменено текстом '1586844 присутствует', если номер существует в любой строке файла.

$ cat allendence.текст
$ sed "s / 1769994.* / 1586844 присутствует / "посещаемость.текст

Следующий вывод появится при выполнении команд. Здесь поисковый номер существует в третьей строке файла, и замена была произведена.

Пример -4: Заменить весь контент из нескольких строк файла после совпадения

Следующая команда sed показывает использование переменной $ PARTITION_COLUMN для замены нескольких строк из файла. Команда будет искать «110» в начале каждой строки файла и заменять все на «110» на текст «Недействительная запись», где будет найден соответствующий текст.

$ cat посещаемость.текст
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Invalid Entry / "посещаемость".текст

Следующий вывод появится после выполнения команд. '110' существует в двух строках файла, и они были заменены заменяющим текстом.

Пример-5: Заменить весь контент из строки файла, используя 'c' после совпадения

Следующие 'sedКоманда 'показывает использование'c'заменить все после матча. Здесь, 'c'обозначает изменение. Команда будет искать слово 'настоящее время'в файле и замените всю строку текстом,'Эта строка заменена'если слово существует в любой строке файла.

$ cat посещаемость.текст
$ sed '/ present / c Эта строка заменена на' посещаемость.текст

Следующий вывод появится после выполнения команд. Слово «присутствует» присутствует в первых двух строках файла, и эти две строки были заменены заменяющим текстом.

Пример-6: Заменить все содержимое строки файла на основе начального и конечного шаблона

Иногда требуется заменить текст по начальному и конечному шаблону. Следующая команда sed показывает способ определения начального и конечного шаблонов для замены строк из файла. Команда выполнит поиск в тех строках в файле, которые начинаются с числа 110 и заканчиваются словом «отсутствует», и заменяет все на слово «заменено» там, где шаблоны совпадают.

$ кошачья посещаемость.текст
$ sed -e 's / ^ 110.* отсутствие посещаемости $ / replace / g.текст

Следующий вывод появится после выполнения команд. Здесь первая и четвертая строки начинаются с числа 110, но слово «отсутствует» существует только в четвертой строке. Итак, четвертая строка файла заменена заменяющим текстом.

Заключение:

Команда 'sed' - очень мощный инструмент Linux для выполнения различных задач, связанных с обработкой текста. Задача замены, основанная на подходящем шаблоне, обсуждается в этом руководстве с использованием различных типов шаблонов в команде sed. $ PARTITION_COLUMN, 'c' и '.* 'используется в этом руководстве для замены всей строки файла, в которой существует соответствующий шаблон. Здесь показано использование некоторых символов определяющих шаблонов, таких как '^' и '$'. Существует множество других символов, определяющих шаблон в регулярном выражении для целей поиска. Я надеюсь, что этот урок поможет читателю узнать основы замены всего из файла после матча.

Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...
Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...
Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...