Bash: Построчное Чтение Файла — While Read Line Цикл

Цикл while — это лучший способ построчного чтения файла в Linux.

Если вам необходимо построчно прочитать файл и выполнить какое-либо действие с каждой его строкой, тогда самым правильным способом для этого является использовние конструкции while read line в Bash.

В этой статье я покажу общий синтаксис конструкции while read line в Bash и пример того, как построчно прочитать файл из командной строки в Linux.

Также я приведу пример Bash скрипта, который построчно читает передаваемый ему файл и выводит каждую строку, добавляя к ней определенный текст.

Дельный Совет: Сделайте Bash скрипт интерактивным! Научите его спрашивать «Да/Нет» для подтверждения. Читать далее →

Цикл While Read Line в Bash

Общая структура конструкции while read line, которая может использоваться в Bash скриптах:

while read LINE
    do COMMAND
done < FILE

Та же конструкция одной строкой (легко использовать из командной строки в Linux):

while read LINE; do COMMAND; done < FILE

В качестве примера выведем список всех пользователей из файла /etc/passwd:

$ while read LINE; do echo "$LINE" | cut -f1 -d":"; done < /etc/passwd
root
daemon
bin
[...]

LINE в этой конструкции — это название переменной, в которой сохраняется значение текущей строки во время каждой итерации цикла.

В зависимости от содержимого вашего файла (FILE), для удобства, вы можете назвать эту переменную как вам будет угодно.

Например, если вы храните в файле список пользователей, будет лучше если вместо LINE вы назовете эту переменную USER, и тогда это будет выглядеть таким образом:

$ cat users.txt
Eric
Kyle
Stan
Kenny
$ while read USER; do echo "Привет $USER!"; done < users.txt
Привет Eric!
Привет Kyle!
Привет Stan!
Привет Kenny!

Дельный Совет: Выполняйте одну команду N раз подряд с помощью цикла FOR в Bash! Читать далее →

Bash Скрипт: Построчное Чтение Файла

Создадим Bash скрипт, который в качестве аргумента получает путь к файлу и печатает слова "Это строка:" в начали каждой строки этого файла.

Создайте пустой файл readfile.sh с помощью команды touch readfile.sh.

Сделайте его исполняемым с помощью chmod +x readfile.sh.

Откройте файл readfile.sh в текстовом редакторе и скопируем туда следующий код:

#!/bin/bash
FILE=$1
while read LINE; do
     echo "Это строка: $LINE"
done < $FILE

Дельный Совет: Не будьте занудой! Сделайте ваш Bash скрипты ЦВЕТНЫМ! Пусть он выглядит ВЕЛИКОЛЕПНО! Читать далее →

Сохраните изменения в запустите скрипт:

$ ./script.sh /etc/passwd
Это строка: root:x:0:0:root:/root:/bin/bash
Это строка: bin:x:1:1:bin:/bin:/sbin/nologin
Это строка: daemon:x:2:2:daemon:/sbin:/sbin/nologin
[...]

2 Replies to “Bash: Построчное Чтение Файла — While Read Line Цикл”

  1. А как бы читать кусками по N строк?

  2. I knew there was a way to do it without programming it. Actually programming it would make it look cleaner. It is easy to do and the system calls are inside the executable.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.