Linux while read line

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

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

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

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

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

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

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

  • – Объявление оболочки “bash”
  • – Запуск цикла while и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывод значения переменной, т.е. строки
  • – Чтение содержимого файла с помощью перенаправителя ввода «

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

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

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

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

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

  • – Объявление оболочки “bash”
  • – Вывод команды cat, отправленной как вход в цикл while с использованием пайпа «|» и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывода значения переменной, т.е. строки
  • – Завершение цикла while с done

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

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

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

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

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

  • – Объявление оболочки “bash”
  • – Запуск цикла while и сохранение содержимого строки в переменной «y»
  • – Часть цикла while (начальная точка) – echo для вывода, а «$ y» означает вывод значения переменной, т.е. строки
  • – Чтение содержимого файла из аргумента командной строки, то есть $1, с использованием перенаправителя ввода «

Заключение

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

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

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

Источник

Bash: Read File Line By Line – While Read Line Loop

The while loop is the best way to read a file line by line in Linux.

If you need to read a file line by line and perform some action with each line – then you should use a while read line construction in Bash, as this is the most proper way to do the necessary.

In this article i will show the general syntax of the while read line construction in Bash and an example of how to read a file line by line from the Linux command line.

Читайте также:  Автовход windows через реестр

I will also show an example of the Bash script that reads an input file line by line and prints each line with some appended text.

Cool Tip: Make your Bash script interactive! Teach it to prompt for “Yes/No” confirmation. Read more →

While Read Line Loop in Bash

The general while read line construction that can be used in Bash scripts:

The same construction in one line (easy to use on the Linux command line):

As example lets print all users from the /etc/passwd file:

You can change it to the more appropriate name, depending on the contents of a FILE .

For example, if you store a list of users in a FILE – it would be better to name this variable not the LINE but the USER , as follows:

Cool Tip: Write a command once and have it executed N times using Bash FOR loop! Read more →

Bash Script: Read File Line By Line

Make it executable with chmod +x readfile.sh .

Open the readfile.sh with a text editor and put the following code:

Cool Tip: Do not be a bore! Add C O L O R S to your Bash script! Make it look AWESOME! Read more →

Источник

Bash: while read line

Basic Syntax of while read line

The following syntax is used for bash shell to read a file using while loop:

The option ‘-r’ in the above-mentioned syntax passed to read command that avoids the backslash escapes from being interpreted. The ‘input_file’ option has represented the name of your file that you want to access by using the ‘read’ command.

The internal field separator abbreviated as IFS can be used before the read command is set to the null string that prevents leading or trailing whitespace from being trimmed.

Open the terminal using Ctrl + Alt + t shortcut and then run the following commands on it.

Example # 1: File Reading line by line

Let’s take an example in which suppose we have a file named OS.txt containing the names of all important Linux distributions. If you want to read a file without using the ‘cat’ command then, for this purpose you can execute the following command to perform the particular task. We will use the while loop that will read each line from the file OS.txt and stores the content in each step in a variable $line that you can display later.

Paste the following names of Linux distributions in the OS.txt


From the above command, you will get the following response on the terminal window:

Example # 2: Reading file using the bash script

Create a bash file and then add the below-mentioned code in this file to read the file content. You can store the previous text file into a new variable $filename and variable $n is used to keep the value of each line. Now, using the while loop we will read each line from a file with a particular line number.

Save the file with a name OSinfo.sh and type the following command on the terminal to run the above bash script.

Now, run the cat command to view the original file content.

Alternative Method for file reading

Using passing file name from a command

In a bash file, you need to add the following code script. In this script, we have to take a filename as an argument. First, the value of an argument is read by a $1 variable which has a filename for reading. It will check that filename exists at the specified location then using the while loop it read a file line by line similar to the previous example.

Читайте также:  Linux gpu driver info

Save the above script with named ‘Readline.sh’ and execute the following command on the terminal to run the above-mentioned script:

In the above output, you will observe that the file ‘OSinfo.txt’ is passing as an argument and the content of ‘OSinfo.txt’ will be displayed after removing extra spaces. You can display the original file content by running ‘cat OSinfo.txt’.

Conclusion

In this article, we have discussed how to read lines using the while loop in bash programming. We have implemented different methods using the bash script or you can simply use a text file to perform reading a file line by line task. If you are interested to learn more examples then using the above-mentioned syntax you can execute on your system as well. I hope you enjoyed this tutorial and would unique for you. Let’s know in case of any error.

About the author

Karim Buzdar

Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.

Источник

Цикл while в Bash

Циклы — одна из фундаментальных концепций языков программирования. Циклы удобны, когда вы хотите выполнить серию команд несколько раз, пока не будет выполнено определенное условие.

В языках сценариев, таких как Bash, циклы полезны для автоматизации повторяющихся задач. В Bash сценариях доступны такие циклы как for, while, и until.

В этом руководстве рассматриваются основы циклов while в Bash. Мы также покажем вам, как использовать операторы break и continue чтобы изменить ход цикла.

while цикл

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

Цикл while Bash имеет следующую форму:

Оператор while начинается с ключевого слова while , за которым следует условное выражение.

Условие оценивается перед выполнением команд. Если условие истинно, команды выполняются. В противном случае, если условие оценивается как ложное, цикл завершается, и управление программой будет передано следующей команде.

В приведенном ниже примере на каждой итерации текущее значение переменной i печатается и увеличивается на единицу.

Цикл вторника повторяется до тех пор, пока i меньше или равно двум. Он выдаст следующий результат:

Бесконечный цикл while

Бесконечный цикл — это цикл, который повторяется бесконечно и никогда не завершается. Если условие всегда истинно, вы получаете бесконечный цикл.

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

В while цикл выше будет работать до бесконечности. Вы можете прервать цикл, нажав CTRL+C

Вот однострочный эквивалент:

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

Одним из наиболее распространенных использований в while петли , чтобы прочитать файл, поток данных или переменной построчно.

Вот пример, который считывает файл /etc/passwd построчно и печатает каждую строку:

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

При чтении файла построчно всегда используйте read с опцией -r чтобы обратная косая черта не использовалась как escape-символ.

По умолчанию команда read обрезает начальные / конечные пробельные символы (пробелы и табуляции). Используйте параметр IFS= перед read чтобы предотвратить такое поведение:

Читайте также:  Linux hdmi не показывает

break и continue

Операторы break и continue могут использоваться для управления выполнением цикла while.

break

Оператор break завершает текущий цикл и передает управление программой команде, которая следует за завершенным циклом. Обычно он используется для завершения цикла при выполнении определенного условия.

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

continue

Оператор continue завершает текущую итерацию цикла и передает управление программой следующей итерации цикла.

В нижеследующем ниже, как только текущий повторяемый элемент равен 2 оператор continue заставит выполнение вернуться к началу цикла и продолжить следующую итерацию.

Выводы

В while цикл многократно выполняет заданный набор команд до тех пор , как условие истинно.

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

Источник

Bash цикл While

Bash while Loop

Это руководство охватывает основы while циклов в Bash. Мы также покажем вам , как использовать break и continue заявление , чтобы изменить поток цикла.

Циклы являются одним из фундаментальных понятий языков программирования. Циклы удобны, когда вы хотите выполнить серию команд несколько раз, пока не будет выполнено определенное условие.

В языках сценариев, таких как Bash, циклы полезны для автоматизации повторяющихся задач. В скриптах Bash есть три основных конструкции циклов: for , while и until .

Цикл While

while Цикл используется для выполняет заданный набор команд неизвестное число раз до тех пор , как данное условие принимает значение истинно.

Цикл Bash while принимает следующую форму:

Обявление начинается с while ключевого слова, за которым следует условное выражение.

Условие оценивается перед выполнением команд. Если условие оценивается как true, команды выполняются. В противном случае, если условие оценивается как ложное, цикл прерывается, и управление программой передается следующей команде.

В приведенном ниже примере на каждой итерации текущее значение переменной i печатается и увеличивается на единицу.

Бесконечный while цикл

Бесконечный цикл — это цикл, который повторяется бесконечно и никогда не заканчивается. Если условие всегда оценивается как истинное, вы получаете бесконечный цикл.

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

while Цикл выше , будет работать бесконечно. Вы можете завершить цикл, нажав CTRL+C .

Вот однострочный эквивалент:

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

Одним из наиболее распространенных применений while цикла является построчное чтение файла, потока данных или переменной.

Вот пример, который читает /etc/passwd файл построчно и печатает каждую строку:

Вместо того, чтобы управлять while циклом с условием, мы используем входную redirection ( ), чтобы передать файл read команде, которая управляет циклом. while Цикл будет выполняться до тех пор , последняя строка не читается.

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

По умолчанию read команда обрезает начальные / конечные пробельные символы (пробелы и символы табуляции). Используйте IFS= опцию прежде, read чтобы предотвратить это поведение:

Операторы break и continue

break И continue заявления могут быть использованы для управления выполнением цикла While.

break

break Оператор завершает текущий цикл и передает управление программой к команде, следующей за прерванный цикл. Обычно используется для завершения цикла при выполнении определенного условия.

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

continue

continue Оператор завершает текущую итерацию цикла и передает управление программой к следующей итерации цикла.

В следующем ниже, после того , как текущий итерированным элемент равен 2 по continue исполнению заявления заставит вернуться к началу цикла и продолжить со следующей итерации.

Вывод

while Цикл многократно выполняет заданный набор команд до тех пор , как условие истинно.

Источник

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