📜 Чтение файла построчно на Bash

как читать файл на Linux по строкам

by itisgood

Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно.

В этом руководстве я расскажу о нескольких способах чтения файлов построчно в скриптах bash.

Чтение файла построчно на bash

В этом руководстве мы покажем вам о двух способах написания сценария bash, с помощью которого вы сможете читать файл построчно:

  • Использование команды read с циклом while
  • Использование команды cat с циклом while

Для простоты понимания мы будем использовать простой текстовый файл с именем LHB.txt, который содержит следующее:

1. Ubuntu
2. Arch
3. openSUSE
4. Fedora
5. Slackware

1. Использование команды read с циклом while

Как следует из названия метода, здесь мы будем использовать команду read с циклом while (разумеется, внутри скрипта).

Сначала создайте и откройте простой файл скриптас помощью следующей команды:

nano read.sh

И вставьте следующие строки:

#!/bin/bash

file="LHB.txt"

while read -r line; do
    echo -e "$line\n"
done <$file 

Вот,

  • file=”LHB.txt”: Указывает, с каким файлом я хочу работать, и в моем случае это LHB.txt.
  • while read -r line; do: Запускает цикл while и читает строки одну за другой, пока не останется ни одной строки для чтения, а флаг -r предотвратит обратную косую черту в строках.
  • echo -e “$line\n”: Будет выведена каждая строка, и каждая будет отделена одной пустой строкой.
  • done < “$file”: Перенаправляет ввод из указанного файла в цикл while.

И, наконец, выполните скрипт:

./read.sh

2. Использование команды cat с циклом while

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

Вот скрипт, который мы будем использовать:

#!/bin/bash

cat LHB.txt | while IFS= read -r line; do
    echo "$line"
    echo   # Print a blank line
done

Вот,

  • cat LHB.txt |: Читает содержимое файла LHB.txt и передает его в piped другим аргументом.
  • while IFS= read -r line; do: Читает строки одну за другой из файла LHB.txt и. IFS используется для сохранения ведущих и завершающих пробельных символов.
  • echo “$line”: Выводит строку, хранящуюся в переменной line.

см. также:

 

Loading

You may also like

Leave a Comment