Изучите Linux

Замена строки в Bash

Замена строки в Bash

Bash - это командный процесс, совместимый с оболочкой UNIX, основная задача которого - управлять строками, выполняемыми в среде оболочки. Иногда программисты вынуждены работать с разными файлами. Они могут добавлять, удалять и заменять части или весь файл в соответствии с их работой. Это требует знания о замене строки в bash. Хранение данных может быть временным или постоянным, в зависимости от характера данных. Строка файла необходима при замене содержимого файла.

Замена строки в Bash

sed жизненно важен и пригодится для помощи в замене строк в файле сценариями bash. Редактор строк можно использовать по-разному для замены содержимого файла в bash. Альтернативный, но звуковой редактор строк - это awk, который можно задействовать при замене строкового значения из файла с помощью bash. В этой статье на примерах будет показано, как можно заменить содержимое файла в bash. Обратите внимание, что знание шаблонов регулярных выражений также может иметь большое значение при замене строки в bash.

Манипуляция строкой в ​​Bash

При незначительных или простых заменах sed не требуется. Баш может делать манипуляции.

Например:
При замене fosslinux.гифка с .mp4, sed не требуется.
Чтобы выполнить процесс с помощью bash, используйте кодированный текст ниже:

# / bin / bash file_name = "fosslinux.gif "new_extension =" mp4 "# Заменить .гифка с .mp4 generated_file_name = $ file_name /.gif /.$ new_extension echo created_file_name

Замена String с помощью sed

sed можно назвать редактором потока. Sed может заменять строку в файлах. Давайте посмотрим на пример файла с именем singleboardbytes.txt, который содержит следующую информацию:
Foss Linux - отличный обучающий сайт для любого пользователя Linux. Ознакомьтесь со статьями, опубликованными Foss Linux на их сайте.

Теперь в нашем файле нам нужно заменить слово «сайт" с участием "Веб-сайт»И переименуйте файл в фосслинукс.текст.

Понимание синтаксиса sed

sed -i 's / search_string / replace_string /' имя файла sed - это команда, используемая при выполнении вышеуказанного синтаксиса ''- используется при модификации содержимого в исходном файле с помощью замены строки всякий раз, когда значение поиска существует в файле. 's'- это подстановочная команда'search_string'- представляет собой строковое значение, которое нужно искать для замены в исходном файле'replace_string'- представляет собой строковое значение, которое используется для замены искомого значения. Строка должна соответствовать строке, найденной командой search_string. 'имя файла'- это имя файла, к которому будет применена замена.

Выполните в своем терминале следующую команду:

sed 's / site / website / g' singleboardbytes.txt> fosslinux.текст

Замена строки с использованием sed

Примечание: вы также можете выполнить указанную выше команду, поместив ее как сценарий bash.
Замена с помощью команда

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

sed -i 's / сайт / сайт / g' singleboardbytes.текст

Замена с помощью команды -i

На рисунке ниже вы можете увидеть восклицательный знак с надписью «Файл« / home / tuts / singleboardbytes ».txt изменен на диске.»Это показывает, что изменения были успешно внесены.

Изменения, внесенные в одноплатные байты.текст

На рисунке ниже показан файл, содержащий изменения, внесенные на предыдущем шаге, как в имя файла (singleboardbytes.txt в fosslinux.txt) и слово сайт был изменен на Веб-сайт.

Окончательное изменение после выполнения команды sed

Использование переменной в качестве значений поиска и замен

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

tuts () local search = $ 1 local replace = $ 2 # Обратите внимание на двойные кавычки sed -i "s / $ search / $ replace / g" singleboardbytes.текст 

Использование переменной в качестве значений поиска и замен

sed имеет две разновидности, а именно: FreeBSD и Linux sed. Дистрибутивы Linux используют sed Linux, в то время как пользователи OS X используют sed FreeBSD. Эти разновидности совершенно разные, и, следовательно, нельзя передавать команды из одной разновидности sed в другую.

Например, при замене содержимого файла с помощью FreeBSD резервное копирование должно выполняться с использованием .расширение bak. Или вы можете инициировать резервное копирование с использованием пустых пар кавычек сразу после обозначения -i, как показано в синтаксисе bash ниже:

tuts () local search = $ 1 local replace = $ 2 sed -i "" "s / $ search / $ replace / g" singleboardbytes.текст 

Если резервное копирование не выполняется при использовании FreeBSD, как показано в синтаксическом коде выше, вы попадете в ошибку, подобную показанной ниже:

sed: 1: «/ Users / user / path / tuts…»: дополнительные символы в конце команды h

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

Если вы успешно запустите скрипт, будет выполнен поиск всего числового содержания, присутствующего в файле. Затем содержимое будет заменено добавлением $ перед числами.

#!/ bin / bash # Проверить, существует ли значение аргумента командной строки, если [$ 1 !знак равно then # Поиск по всей строке, содержащей цифры, и добавление $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Замена строки с помощью команды awk

В этом случае мы будем использовать команду awk вместо команды sed для замены содержимого файла. Разница между этими командами заключается в том, что команда sed напрямую обновляет исходный файл, чего нельзя сказать о команде awk.

#!/ bin / bash # Проверить, существует ли значение аргумента командной строки, если [$ 1 !знак равно then # Искать во всей строке по дате awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Заключение

Приведенные выше примеры жизненно важны для вашего прогресса в изучении того, как заменить строку в Bash. Следовательно, чтобы добиться успеха, вам нужно будет регулярно тренироваться. Поиск и замена строки в файле могут показаться сложными, но вы обнаружите, что это намного проще, если правильно следовать нашим рекомендациям.

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

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...