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.

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