Bash grep в переменную

Как сделать grep в переменной? Я сохранил вывод wget в переменной, и мне нужно извлечь из него некоторые строки. Как и содержимое переменной, это

Мне нужно проверить, содержит ли строка слово upgrade, поэтому я могу сделать простой grep, а затем проверить его статус выхода на $? и продолжить.

Как я могу получить значение 3.0.5, которое на самом деле является четвертым словом?

И как на самом деле grep в переменной?

2 ответа

Вместо grepping, возможно, просто используйте cut. Это будет намного быстрее, чем запуск полного регулярного выражения.

Это может быть немного более надежным (захват версии из zip url):

Если вы хотите сохранить его обратно в переменной bash, просто оберните это в кавычки и обратные ссылки. Первая часть будет выполняться первой, оставив ее как строку.

Итак, чтобы разбить это (за ваш комментарий) на поиск upgrade в начале:

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

используйте grep, чтобы найти строку со словом «один», используя эхо с указанной переменной:

У меня есть файл с именем email.txt, похожий на этот:

Я хочу удалить только этот адрес электронной почты в этом файле с помощью bash script. Так что я помещаю этот script в мой bash script с именем myscript:

Читайте также:  Сграбить видео с сайта

Но мне не удалось запустить этот script. Когда я запускаю эту команду вручную в bash, я могу получить адрес электронной почты:

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

linux bash grep

5 ответов

10 Решение flesk [2012-06-12 11:34:00]

Я думаю, что это слишком сложный способ обойти вещи, но если вы просто хотите, чтобы ваш script работал, попробуйте следующее:

Я не уверен, что должен был выполняться file=$(myscript) , но на следующей строке вы хотите указать имя файла в качестве аргумента awk , поэтому просто присвойте email.txt как строковое значение file , не выполните команду под названием myscript . $var1 не является командой (это просто строка из вашего текстового файла), поэтому вам нужно echo дать grep что-нибудь полезное для работы. Дополнительные круглые скобки вокруг grep являются избыточными.

Вам нужно сделать что-то вроде этого:

Там более грубый способ:

cat $file | grep @| tr ‘ ‘ ‘ 01212’ | grep @

То есть, выделите строку [s] с помощью значков @, поверните угловые скобки в символы новой строки, затем снова grep для чего-либо, оставленного знаком @.

Уточните по мере необходимости.

0 gshilin [2012-06-12 11:32:00]

Есть очень полезные флаги для bash: -xv

Также моя версия grep не имеет флага -o.

И, поскольку шаблоны grep являются "жадными", даже когда следующий код работает, он выводит не то, что вы хотите.

Как сохранить вывод команды grep в переменной оболочки? Каков синтаксис для хранения вывода команды в переменную для Linux или Unix?

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

Читайте также:  Ijevan коньяк 5 лет отзывы

Синтаксис: замена команд

Подстановка команд означает не что иное, как запуск команды оболочки и сохранение ее вывода в переменную или отображение в исходном состоянии с помощью команды echo. Синтаксис выглядит следующим образом:

Примеры

Отображение даты и времени с помощью команды echo:

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

Чтобы сохранить текущую дату и время в переменном значении, существует команда под названием todays:

Вы можете вывести на экран значение $todays, для этого введите:

В этом примере используйте команду grep для поиска имени пользователя vivek и сохранения вывода в переменном значении под названием myuser:

Примеры вывода данных:

Рис.01: grep сохраняет вывод в оболочке переменной и возвращает его на экран с помощью команды echo

Вы можете сохранить вывод команды grep в переменном значении одновременно с печатью вывода с использованием следующего синтаксиса на основе команды tee:

Это полезно для прямого вывода команды grep на переменную оболочки и отображения на экране одновременно.