whatsaper ru ÐедеÑÑкие анекдоÑÑ Ð¿Ñо ÐовоÑкÑ
Оглавление:
- Считывание файла построчным синтаксисом
- Чтение файла построчные примеры
- Альтернативные методы чтения файлов
- Использование процесса замены
- Использование строки Here
- Использование файлового дескриптора
- Вывод
При написании сценариев 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? Один из способов - использовать оператор if и проверить, содержит ли строка подстроку apt:
while IFS= read -r line do if]; then echo "$line" fi done < distros.txt
Ubuntu, apt Debian, apt
При чтении файла строка за строкой вы также можете передать более одной переменной команде чтения, которая разбит строку на поля на основе
IFS
. Первое поле присваивается первой переменной, второе - второй переменной и т. Д. Если полей больше, чем переменных, оставшиеся поля присваиваются последней переменной.
В следующем примере мы устанавливаем IFS в виде запятой (
,
) и передаем две переменные
distro
и
pm
в команду read. Все от начала строки до первой запятой будет присвоено первой переменной (
distro
), а остальная часть строки будет назначена второй переменной (
pm
):
while IFS=, read -r distro pm do echo "$pm" is the package manager for "$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 echo "$line" done < <(cat input_file)
Использование строки Here
Здесь Строка является вариантом документа Здесь. Строка
(cat input_file)
будет содержать символы новой строки:
while IFS= read -r line do echo "$line" done <<< $(cat input_file)
Использование файлового дескриптора
Вы также можете предоставить вход для цикла, используя дескриптор файла:
while IFS= read -r -u9 line do echo "$line" done 9< input_file
При работе с файловыми дескрипторами используйте число от 4 до 9, чтобы избежать конфликта с внутренними файловыми дескрипторами оболочки.
Вывод
В Bash мы можем прочитать файл построчно, указав имя файла в качестве входного для цикла чтения.
терминал bashОбзор: Quick View Plus позволяет читать практически любой бизнес-файл
Если вы хотите расширить возможности предварительного просмотра Windows, попробуйте это это утилита просмотра файлов. Он объединяет в Проводнике и поддерживает более 300 типов файлов, в том числе многие из которых вы больше не можете использовать программное обеспечение.
Файл не может быть сохранен, потому что исходный файл не может быть прочитан
Если вы не можете скачать, вы увидите appdatalocaltemp не удалось сохранить, поскольку исходный файл не может быть прочитан в Firefox, вот что вам нужно сделать.
Как читать как профессионал на OnePlus один
Для читателей, которые не могут освоить основы идеального чтения на своих устройствах Android, у нас есть персонализированный опыт из первых рук, описанный специально для вас.







