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

Содержание
  1. Как читать файл построчно в Bash
  2. Чтение файла построчно с синтаксисом
  3. Примеры чтения файла построчно
  4. Альтернативные методы чтения файлов
  5. Использование подстановки процесса
  6. Использование строки Here
  7. Использование дескриптора файла
  8. Выводы
  9. Как читать файл построчно в Bash
  10. Считывание файла построчным синтаксисом
  11. Как это работает?
  12. Чтение файла построчные примеры
  13. Альтернативные методы чтения файлов
  14. Использование процесса замены
  15. Использование строки Here
  16. Использование файлового дескриптора
  17. Заключение
  18. 🐧 Как читать файл построчно | скрипт Bash [3 метода]
  19. Метод 1: использование перенаправление ввода
  20. Метод 2: использование команды cat
  21. Как это устроено:
  22. 3. Использование имени файла в качестве аргумента
  23. Заключение
  24. You may also like
  25. 📜 Чтение файла построчно на Bash
  26. 📧 В чем разница между IMAP и POP3
  27. ✔️ Как управлять контейнерами LXD от имени обычного.
  28. 📜 Руководство для начинающих по созданию первого пакета.
  29. Феноменальная популярность электроники Xiaomi: основные причины
  30. 📜 Получение вчерашней даты в Bash: Практическое руководство
  31. Использование специальных гелей при мышечных болях
  32. 📦 Как расширить/увеличить файловую систему VxFS на Linux
  33. Услуги по размещению серверного оборудования в ЦОД
  34. Для чего выполняется ИТ консалтинг на предприятиях?
  35. Leave a Comment Cancel Reply
  36. • Свежие записи
  37. • Категории
  38. • Теги
  39. • itsecforu.ru
  40. • Страны посетителей
  41. IT is good

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

При написании сценариев Bash вы иногда можете оказаться в ситуациях, когда вам нужно прочитать файл построчно. Например, у вас может быть текстовый файл, содержащий данные, которые должен обрабатывать сценарий.

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

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

Наиболее общий синтаксис для построчного чтения файла следующий:

while IFS= read -r line; do printf '%sn' "$line" done < input_file 

или эквивалентная однострочная версия:

while IFS= read -r line; do printf '%sn' "$line"; done < input_file 

Входной файл ( input_file ) — это имя файла, перенаправленного в цикл while. Команда read обрабатывает файл построчно, присваивая каждую строку line переменной. Когда все строки обработаны, цикл while завершается.

По умолчанию команда read интерпретирует обратную косую черту как escape-символ и удаляет все начальные и конечные пробелы, что иногда может вызвать неожиданное поведение. Чтобы отключить экранирование обратной косой черты, мы вызываем команду с параметром -r , а чтобы отключить обрезку, внутренний разделитель полей ( IFS ) очищается.

Мы используем [ printf ] вместо echo чтобы сделать код более переносимым и избежать нежелательного поведения. Например, если строка содержит такие значения, как «-e», она будет рассматриваться как опция эха.

Примеры чтения файла построчно

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

Ubuntu,apt Debian,apt CentOS,yum Arch Linux,pacman Fedora,dnf 

Чтобы прочитать файл построчно, вы должны запустить в своем терминале следующий код:

while IFS= read -r line; do printf '%sn' "$line" done < distros.txt 

Код читает файл за строкой, присваивает каждую строку переменной и печатает ее. По сути, вы увидите такой же результат, как если бы вы отображали содержимое файла с помощью команды cat .

Что, если вы хотите распечатать только дистрибутивы, в которых используется apt? Один из способов — использовать оператор if и проверить, содержит ли строка подстроку apt:

while IFS= read -r line; do if [[ "$line" == *"apt"* ]]; then printf '%sn' "$line" fi done < distros.txt 

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

Читайте также:  Удаленный доступ linux mint

В следующем примере мы устанавливаем IFS в запятую ( , ) и передаем две переменные distro и pm команде read . Все от начала строки до первой запятой будет присвоено первой переменной ( distro ), а остальная часть строки будет присвоена второй переменной ( pm ):

while IFS=, read -r distro pm; do printf '%s is the package manager for %sn' "$pm" "$distro" done < distros.txt 
apt is the package manager for Ubuntu apt is the package manager for Debian yum is the package manager for CentOS pacman is the package manager for Arch Linux dnf is the package manager for Fedora 

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

Использование подстановки процесса

Подстановка процесса — это функция, которая позволяет использовать вывод команды в виде файла:

while IFS= read -r line; do printf '%sn' "$line" done < (cat input_file ) 

Использование строки Here

Здесь String — это вариант документа Here . Строка (cat input_file ) сохраняет (cat input_file ) строки:

while IFS= read -r line; do printf '%sn' "$line" done  $(cat input_file ) 

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

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

while IFS= read -r -u9 line; do printf '%sn' "$line" done 9< input_file 

При работе с файловыми дескрипторами используйте число от 4 до 9, чтобы избежать конфликта с внутренними файловыми дескрипторами оболочки.

Выводы

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

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

Favorite

Добавить в избранное

Как создать псевдонимы Bash

П ри написании сценариев Bash вы иногда окажетесь в ситуациях, когда вам нужно читать файл построчно. Например, у вас может быть текстовый файл, содержащий данные, которые должны обрабатываться сценарием.

В этой статье мы расскажем о том, как построчно читать файл в Bash.

Считывание файла построчным синтаксисом

Наиболее общий синтаксис для чтения файла построчно:

while IFS= read -r line do echo "$line" done < input_file

или эквивалентная однострочная версия:

while IFS= read -r line; do echo $line; done < input_file

Как это работает?

Входной файл ( input_file) — это имя файла, который вы хотите открыть командой для чтения read. Команда read читает файл построчно, присваивая каждую строку переменной line. Как только все строки обработаны, цикл while прекратится. Внутренний разделитель полей (IFS) устанавливается в пустую строку, чтобы сохранить начальные и конечные пробелы, что является поведением команды по умолчанию read.

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

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

Ubuntu,apt Debian,apt CentOS,yum Arch Linux,pacman Fedora,dnf

Чтобы прочитать файл построчно, вы должны запустить следующий код в вашем терминале:

while IFS= read -r line do echo "$line" done < distros.txt

Код будет читать файл построчно, назначать строку переменной и выводить ее. По простоте вы увидите тот же вывод, что и при отображении содержимого файла с помощью команды cat.

Что если вы хотите распечатать только дистрибутивы, которые используют apt? Один из способов — проверить, содержит ли строка подстроку apt :

while IFS= read -r line do if [[ "$line" == *"apt"* ]]; then echo "$line" fi done < distros.txt

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

В следующем примере мы устанавливаем IFS для запятой (,) и передаем две переменные distro и pm команде чтения. Все от начала строки до первой запятой будет присвоено первой переменной ( distro), а остальная часть строки будет назначена второй переменной ( pm):

while IFS=, read -r distro pm do echo "$pm" менеджер пакетов для "$distro" done < distros.txt
apt менеджер пакетов для Ubuntu apt менеджер пакетов для Debian yum менеджер пакетов для CentOS pacman менеджер пакетов для Arch Linux dnf менеджер пакетов для Fedora

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

Использование процесса замены

Подстановка процесса позволяет вам передавать вывод команды в виде имени файла:

while IFS= read -r line do echo "$line" done < <(cat input_file )

Использование строки Here

Здесь строка является вариантом heredoc. Строка (cat input_file ) будет содержать новые строки:

while IFS= read -r line do echo "$line" done 

Использование файлового дескриптора

Вы также можете предоставить вход для цикла, используя дескриптор файла:

while IFS= read -r -u9 line do echo "$line" done 9< input_file

При работе с файловыми дескрипторами используйте число от 4 до 9, чтобы избежать конфликта с внутренними файловыми дескрипторами оболочки.

Заключение

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

🐧 Как читать файл построчно | скрипт Bash [3 метода]

В этой статье мы изучим 3 метода в сценарии bash для чтения файла построчно.

Метод 1: использование перенаправление ввода

Самый простой способ прочитать файл построчно – использовать перенаправитель ввода в цикле while.

Чтобы продемонстрировать, мы создали образец файла с именем mycontent.txt и будем использовать его в этом руководстве.

$ cat mycontent.txt This is a sample file We are going through contents line by line to understand

Давайте создадим скрипт с именем example1.sh, который использует перенаправление ввода и цикл.

$ more example1.sh #!/bin/bash while read y do echo "Line contents are : $y " done < mycontent.txt
  • – Объявление оболочки “bash”
  • – Запуск цикла while и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывод значения переменной, т.е. строки
  • – Чтение содержимого файла с помощью перенаправителя ввода «

Выполнение скрипта и вывод:

Line contents are : This is a sample file Line contents are : We are going through contents Line contents are : line by line Line contents are : to understand

Метод 2: использование команды cat

Второй метод – использовать команду cat и затем отправлять ее вывод в качестве входных данных в цикл while, используя pipe.

Создайте файл скрипт example2.sh с таким содержанием:

$ more example2.sh #!/bin/bash cat mycontent.txt | while read y do echo "Line contents are : $y " done

Как это устроено:

  • – Объявление оболочки “bash”
  • – Вывод команды cat, отправленной как вход в цикл while с использованием пайпа «|» и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывода значения переменной, т.е. строки
  • – Завершение цикла while с done
$ ./example2.sh Line contents are : This is a sample file Line contents are : We are going through contents Line contents are : line by line Line contents are : to understand

Совет: мы можем объединить все команды и использовать их как одинарные.

$ while read line; do echo $line; done < mycontent.txt This is a sample file We are going through contents line by line to understand

3. Использование имени файла в качестве аргумента

Этот третий метод отправляет имя файла в качестве входного аргумента через командную строку.

Создайте файл скрипта с именем example3.sh, как:

$ more example3.sh #!/bin/bash while read y do echo "Line contents are : $y " done < $1
  • – Объявление оболочки “bash”
  • – Запуск цикла while и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывод значения переменной, т.е. строки
  • – Чтение содержимого файла из аргумента командной строки, то есть $1, с использованием перенаправителя ввода «
$ ./example3.sh mycontent.txt Line contents are : This is a sample file Line contents are : We are going through contents Output of Script Line contents are : line by line Line contents are : to understand

Заключение

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

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

Спасибо за прочтение, оставляйте свои предложения и отзывы в разделе комментариев.

itisgood
🎵 Как установить Spotify на дистрибутивах Linux
🐧 Как добавить метки времени в логи ядра dmesg в CentOS / RHEL

You may also like

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

📧 В чем разница между IMAP и POP3

✔️ Как управлять контейнерами LXD от имени обычного.

📜 Руководство для начинающих по созданию первого пакета.

Феноменальная популярность электроники Xiaomi: основные причины

📜 Получение вчерашней даты в Bash: Практическое руководство

Использование специальных гелей при мышечных болях

📦 Как расширить/увеличить файловую систему VxFS на Linux

Услуги по размещению серверного оборудования в ЦОД

Для чего выполняется ИТ консалтинг на предприятиях?

Leave a Comment Cancel Reply

• Свежие записи

• Категории

• Теги

• itsecforu.ru

• Страны посетителей

IT is good

В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…

В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…

Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…

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

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

Источник

Оцените статью
Adblock
detector