zaLinux.ru

Как обработать каждую строку, полученную от команды grep


В скриптах перед нами может возникнуть задача не просто отобразить результаты команды grep, а совершить с ними определённые действия. Первое, что приходит в голову для такой задачи, – это присвоить вывод команды grep переменной, а затем обработать полученное значение этой переменной. При проверке вы можете убедиться, что в присвоенных переменной значениях теряются белые пробелы (перевод строк). Можно продолжить искать решения и для этой проблемы, но я предлагаю поступить проще.

Одним из простых способов является не присвоение вывода новой переменной, а непосредственная обработка каждой полученной от grep строки в петле while/read.


Это выглядит примерно так:

grep xyz abc.txt | while read -r line ; do
    echo "Обрабатывается $line"
    # здесь ваш код
done

Есть ещё один вариант этой схемы, который может подойти в зависимости от того, чего именно вы хотите добиться.

Если вам нужно изменять переменный в петле (при этом эти изменения должны быть видны снаружи), то вы можете обрабатывать подстановку следующим образом:

while read -r line ; do
    echo " Обрабатывается $line"
    # здесь ваш код
done < <(grep xyz abc.txt)

Рекомендуемые статьи:

Оставить комментарий

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