Bash: во время чтения строки

Bash While Read Line



Когда вы работаете над сценариями bash, иногда вам может потребоваться прочитать файл построчно. Поясним на примере. У вас есть данные в текстовом файле, которые следует выполнить или обработать с помощью сценария. Итак, запуск сценария bash для обработки текстового файла сильно отличается. Вам необходимо следовать указанному синтаксису, чтобы читать файл построчно. Эта статья поможет вам прочитать строку из файла с помощью цикла while в Bash.

Базовый синтаксис строки при чтении

Следующий синтаксис используется оболочкой bash для чтения файла с помощью цикла while:







в то время как читать линия;
делать
выбросил '$ линия';
сделано <input.file

Параметр ‘-r’ в вышеупомянутом синтаксисе передается команде чтения, которая позволяет избежать интерпретации обратной косой черты. Параметр «input_file» представляет имя вашего файла, к которому вы хотите получить доступ с помощью команды «read».



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



в то время как IFSзнак равночитать линия;
делать
выбросил $ линия;
сделано <input.file

Откройте терминал, используя сочетание клавиш Ctrl + Alt + t, а затем выполните на нем следующие команды.





Пример # 1: чтение файла построчно

Давайте рассмотрим пример, в котором предположим, что у нас есть файл с именем OS.txt, содержащий имена всех важных дистрибутивов Linux. Если вы хотите прочитать файл без использования команды «cat», для этой цели вы можете выполнить следующую команду для выполнения конкретной задачи. Мы будем использовать цикл while, который будет читать каждую строку из файла OS.txt и сохранять содержимое каждого шага в переменной $ line, которую вы можете отобразить позже.

Вставьте следующие названия дистрибутивов Linux в OS.txt



CentOS
Ubuntu
Debian
LinuxMint $в то время как читатьлиния;
делать
выбросил $ линия;
сделано <OS.txt


Из приведенной выше команды вы получите следующий ответ в окне терминала:

Пример # 2: Чтение файла с помощью сценария bash

Создайте файл bash, а затем добавьте в этот файл указанный ниже код для чтения содержимого файла. Вы можете сохранить предыдущий текстовый файл в новой переменной $ filename, а переменная $ n используется для сохранения значения каждой строки. Теперь, используя цикл while, мы будем читать каждую строку из файла с определенным номером строки.

#! / bin / bash
имя файлазнак равно'OS.txt'
пзнак равно1
в то время как читатьлиния;
делать
# для чтения каждой строки
выбросил Линия распределения ОС №$ n:$ линия'
п= $((п +1))
сделано < $ filename

Сохраните файл с именем OSinfo.sh и введите следующую команду в терминале, чтобы запустить указанный выше сценарий bash.

$трепатьOSinfo.sh

Теперь запустите команду cat, чтобы просмотреть исходное содержимое файла.

$КотOS.txt

Альтернативный метод чтения файлов

Использование передачи имени файла из команды

В файл bash вам необходимо добавить следующий код script. В этом сценарии мы должны использовать имя файла в качестве аргумента. Сначала значение аргумента считывается переменной $ 1, у которой есть имя файла для чтения. Он проверит, что имя файла существует в указанном месте, а затем с помощью цикла while прочитает файл построчно, как и в предыдущем примере.

#! / bin / bash
имя файлазнак равно1 доллар
в то время как читатьлиния;делать
# чтение каждой строки
выбросил $ линия
сделано < $ файл.текст

Сохраните приведенный выше сценарий с именем «Readline.sh» и выполните следующую команду на терминале, чтобы запустить вышеупомянутый сценарий:

В приведенном выше выводе вы увидите, что файл «OSinfo.txt» передается в качестве аргумента, а содержимое «OSinfo.txt» будет отображаться после удаления лишних пробелов. Вы можете отобразить исходное содержимое файла, запустив cat OSinfo.txt.

Заключение

В этой статье мы обсудили, как читать строки с помощью цикла while в программировании на bash. Мы реализовали различные методы с использованием сценария bash, или вы можете просто использовать текстовый файл для выполнения построчно чтения файла. Если вам интересно узнать больше примеров, вы также можете использовать вышеупомянутый синтаксис в своей системе. Надеюсь, вам понравился этот урок, и он станет для вас уникальным. Сообщим в случае ошибки.