sed, что такое команда Linux для редактирования текста, которая также полезна в Windows

sed, что такое команда Linux для редактирования текста, которая также полезна в Windows

Любой, кто использует дистрибутив Linux и операционную систему в целом. Unix-подобный можете воспользоваться услугами СЭД, мощный инструмент для управления текстом, который особенно полезен в различных контекстах. команда его можно использовать для замены текста, удаления строк и автоматического выполнения других операций. Если вы ищете конкретный нить символов в файле, даже большом, и вы хотите заменить его чем-то другим, если это подходящий инструмент. Хотя его навыки, конечно, на этом не заканчиваются.

Что такое sed и как он работает

Название sed является сокращением от редактор потока: Это утилита в командной строке что во многих случаях оказывается очень полезным. Мы уже рассказывали вам о трудностях, с которыми сталкиваются многие текстовые редакторы при работе с большими файлами, верно? Команда sed действует как своего рода режиссер: строки текста — это актеры, инструкции вы предоставляете сценарий.

Особенность sed заключается, как мы уже подчеркивали, в замена слов и, следовательно, при преобразовании строк. От простой замены строки по всему тексту до удаления пустых строк — se подходит для любой роли. Говори язык действительно, смесь императивных команд и регулярных выражений.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

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

Потому что sed также полезен в Windows

К сожалению, операционные системы Windows не поддерживают такую ​​мощную команду, как sed. Есть findstr, но он просто просматривает одну строку, пока PowerShell предлагает командлет Get-Content и выражение -replace, но в обоих случаях необходимо проявить изобретательность в использовании определенных пакетов и скриптов.

Активировав ВСЛ (Подсистема Windows для Linux) в Windows 10 и Windows 11 можно использовать Linux в Windows благодаря идеальной интеграции с операционной системой Microsoft.

Например, установив Ubuntu в WSL (или любой другой дистрибутив Linux), вы сможете получить доступ к команде sed даже из Windows. Нажав Windows+R, набрав \\WSL$ и перейдя в домашний каталог вашей учетной записи пользователя Linux, вы можете копировать текстовые файлы для обработки из окна WSL с помощью команды sed.

Примеры использования команды sed

Лучший способ узнать, как работает команда, — начать с конкретных примеров. Следующий оператор заменяет все вхождения строки A на строку B:

sed -i ‘s/stringaA/stringaB/g’ file.txt

Вместо stringA на stringB: в файле file.txt явно должны быть указаны заменяемые слова. Опция -i сообщает sed редактировать текстовый файл напрямую, без создания файла резервной копии. Таким образом, вмешательства производятся в содержимом объекта с именем file.txt и сохраняются в папке, в которой он находится.

Предположим, мы возьмем текст «Обрученные» и сохраните его как текстовый файл: это файл весом примерно 1,2 МБ и содержащий чуть менее 3000 строк. Введя следующую команду, sed создаст новый файл (обратите внимание на отсутствие опции -i) с именем Ренцо заменен на Марио:

sed ‘s/Renzo/Mario/g’ promessi-sposi.txt > promessi-sposi-modified.txt

В текстовом файле promessi-sposi-modifica.txt Ренцо Трамальино стал Марио Трамальино. Добрый Мандзони простит нас.

sed, руководство по использованию команды

В случае, если вы хотите произвести соответствующие замены, не принимая во внимание разница между прописными и строчными буквамипросто используйте синтаксис, уже содержащийся в команде:

sed -i ‘s/stringadatrovare/stringadasostituire/ги‘файл.txt

В частности:

  • г: означает «Глобальный» и указывает на необходимость выполнения замена в некотором смысле Глобальный внутри каждой строки.
  • я: Это означает «без учета регистра” (нечувствительный к регистру). Это означает, что замена будет нечувствительна к регистру.

Как заменить текст, расположенный в определенных строках

В предыдущих примерах мы видели, как производить автоматическую замену всего содержимого текстового файла. Следующая команда гарантирует, что sed принимает во внимание только содержимое строк с номером 50 по номер 150: диапазон, очевидно, можно настроить по своему вкусу.

sed -i ‘50,150s/stringadatrovare/stringadasostituire/g’ file.txt

Вставить текст после определенной строки

Команда sed подобна «швейцарскому армейскому ножу»: она адаптируется к любым потребностям, связанным с управление файлами текста. Не открывая какой-либо редактор, вы можете запросить sed добавить текст после определенной строки. Для этого просто введите следующее:

sed -i ’50i\3rd line’ file.txt

Часть 50i\ утверждения указывает, что это желательно. импортировать в текстовый файл то, что указано после косой черты, сразу над строкой номер 50.

Извлеките содержимое нескольких строк текстового файла.

Нам часто приходится иметь дело с текстовыми файлами большие размеры. Извлечение содержимого определенных строк текста или даже поиск только тех строк текста, которые содержат определенные строки, может оказаться сложной задачей.

Если вернуться к тексту «Обрученных», то следующее позволяет извлечь содержание только строк 1000-1010:

sed -n ‘1000,1010p’ promessi-sposi.txt

Однако следующая команда позволяет извлекать и отображать только те строки, которые содержат строки Ренцо о Люсия:

sed -n ‘/Ренцо\|Люсия/p’ promessi-sposi.txt

В кавычках представлено регулярное выражение, которое соответствует всем строкам, содержащим строку «Ренцо» или «Люсия». Оператор \| это работает как логический оператор ИЛИ.

Удалить все строки, содержащие строку

Аналогично, sed ‘100,110d’ file.text > new-file.txt позволяет удалять строки от 100 до 110 путем создания нового текстового файла, а следующая команда позволяет удалить все строки, содержащие указанную строку символов:

sed -i ‘/stringa/d’ file.txt

Всегда лучше уделять максимум внимания использованию опции -i, которая, как объяснялось, применяет изменения непосредственно к исходному текстовому файлу без создания резервных копий.

Пер удалить пустые строки однако из текстового файла вы можете использовать следующую инструкцию: sed ‘/^$/d’ file.txt

Как добавить новую информацию в конец файла

При работе с текстовыми файлами может быть полезно добавлять новые строки, не открывая «специальный» редактор. Это особенно полезно, если я Файл конфигурации большой.

Простая команда sed -i ‘$a\новая строка для добавления’ file.txt позволяет добавить новую строку в конец файла, в то время как, например, sed ’15th\новая строка для добавления’ file.txt добавляется после 15-й. линия.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *