Управляйте текстовыми файлами с помощью простых команд
Операционная система Linux использует команды терминала для работы с файловой системой компьютера. Основное использование команды Linux sed , что сокращенно от «редактора потоков», заключается в изменении каждой строки файла или потока путем замены указанных частей строки. Он вносит базовые текстовые изменения в файл или ввод из конвейера.
Примеры использования Sed для внесения изменений в текстовые файлы
Допустим, у вас есть файл с именем songs.txt, который содержит следующие строки:
1, Джастин Тимберлейк, Название 545, Цена 6,30 $
2, Тейлор Свифт, Название 723, Цена 7,90 $
3, Мик Джаггер, Название 610, Цена 7,90 $ 4, Леди Гага, Название 118, Цена 6,30 $
5, Джонни Кэш, Название 482, Цена 6,50 $
6, Элвис Пресли, Название 335, Цена 6,30 $ 7, Джон Леннон, Название 271, Цена 7,90 $
Вы хотите изменить все вхождения цены от $ 6,30 до $ 7,30. Для этого вы можете использовать команду sed следующим образом:
sed 's/6.30/7.30 /' songs.txt> songs2.txt
Этот код вносит изменения и сохраняет измененный файл как song2.txt. Полученный новый файл содержит:
1, Джастин Тимберлейк, титул 545, цена $ 7,30
2, Тейлор Свифт, титул 723, цена $ 7,90
3, Мик Джаггер, название 610, цена $ 7,90
4, Lady Gaga, Title 118, цена $ 7.30
5, Джонни Кэш, название 482, цена $ 6.50
6, Элвис Пресли, титул 335, цена $ 7,30
7, Джон Леннон, название 271, цена $ 7,90
Если вы хотите заменить все вхождения «Cash» на «Trash», вы также можете использовать команду sed следующим образом:
sed 's/Cash/Trash /' songs.txt> songs2.txt
Полученный измененный файл song2.txt будет содержать следующий текст:
1, Джастин Тимберлейк, титул 545, цена 7:30
2, Тейлор Свифт, титул 723, цена $ 7,90
3, Мик Джаггер, название 610, цена $ 7,90
4, Lady Gaga, название 118, цена $ 7: 30
5, Джонни Траш, название 482, цена $ 6.50
6, Элвис Пресли, титул 335, цена $ 7: 30
7, Джон Леннон, название 271, цена $ 7,90
Фильтрация с помощью команды Sed
Sed также часто используется для фильтрации строк в файле или потоке. Например, если вы хотите видеть только строки, содержащие «John», вы должны использовать следующую команду sed:
sed -n '/ John/p' songs.txt> johns.txt
Новый файл johns.txt будет содержать следующие строки:
5, Джонни Кэш, название 482, цена $ 6.50
7, Джон Леннон, название 271, цена $ 7,90