Как читать файл построчно в сценарии Bash

How Read File Line Line Bash Script



Как бы вы написали сценарий Bash, который может обрабатывать текстовый файл по одной строке за раз. Сначала вам нужен синтаксис и подход к чтению файла построчно. Методы этого подхода показаны в этом руководстве.

Предположим, у вас есть файл с именем company.txt который содержит названия компаний. Этот файл содержит следующее содержимое.







Company.txt
Samsung
Nokia
LG
Симфония
iphone

Пример -1: чтение содержимого файла из командной строки

Предположим, вы хотите прочитать файл, company.txt , построчно из командной строки без 'Кот' команда. Выполните следующую команду, чтобы выполнить задачу. в то время как цикл будет читать каждую строку из файла company.txt на каждом шаге и сохраните содержимое строки в $ линия переменная, которая будет напечатана позже.



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



Пример -2: Чтение содержимого файла с помощью скрипта

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





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

Выполните следующую команду, чтобы выполнить сценарий.

$трепатьreadfile1.sh

Запустить 'Кот' команда с company.txt файл для отображения исходного содержимого company.txt файл.



$ cat company.txt

Пример -3: Передача имени файла из командной строки и чтение файла

Создайте файл bash и добавьте следующий скрипт. Этот сценарий возьмет имя файла из аргумента командной строки. Значение первого аргумента считывается переменной $ 1, которая будет содержать имя файла для чтения. Если файл существует в текущем месте, тогда в то время как цикл будет читать файл построчно, как в предыдущем примере, и печатать содержимое файла.

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

Запустите приведенный выше сценарий с employee.txt файл как значение аргумента. На выходе будет показано содержимое employee.txt файл, удалив лишнее пространство. Вы можете показать исходное содержание employee.txt файл с помощью 'Кот' команда.

$ bash readfile2.txt employee.txt
$ cat employee.txt

Пример - 4: чтение файла без escape-символа обратной косой черты

Если вы хотите прочитать каждую строку файла, опуская обратную косую черту, вам нужно использовать '-р' вариант с командой чтения в в то время как петля.

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

Создайте файл с именем company2.txt с обратной косой чертой и выполните следующую команду, чтобы выполнить сценарий. На выходе будет показано содержимое файла без обратной косой черты.

$трепатьreadfile3.sh

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