Bash Для каждой строки в файле

Bash Each Line File



Цикл For в Bash может использоваться с различными вариантами для выполнения нескольких задач. Одним из таких вариантов является For each line in file, который отвечает за чтение всех строк в файле. В этой статье мы поговорим о методах использования каждой строки файла в Bash.

Примечание. Методы, показанные ниже, были продемонстрированы в Ubuntu 20.04. Однако они также будут хорошо работать с любым другим дистрибутивом Linux.







Способы использования для каждой строки файла в Bash:

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



Метод №1: для отображения строк чтения на терминале:

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



Шаг № 1: Создание фиктивного текстового файла:

Прежде всего, вы должны создать текстовый файл со случайными данными для демонстрации. Хотя этот текстовый файл можно создать где угодно, тем не менее, настоятельно рекомендуется создавать его в домашней папке. Для этого щелкните значок диспетчера файлов, выделенный на изображении, показанном ниже:





  • Создание фиктивного текстового файла

    Теперь щелкните правой кнопкой мыши в любом месте своей домашней папки и выберите параметр «Новый документ» в появившемся меню. Затем выберите опцию «Пустой документ». После того, как в вашей домашней папке будет создан пустой документ, укажите для него имя по вашему выбору, за которым следует расширение .txt. В этом примере мы назвали его ForEachLine.txt.

  • Создание фиктивного текстового файла2
    Дважды щелкните этот текстовый файл, чтобы открыть его, а затем введите в него произвольный текст, как показано на следующем изображении. После этого сохраните этот файл и закройте его.



  • Создание фиктивного текстового файла 3

    Шаг № 2: Создание сценария Bash:

    Теперь создайте файл Bash так же, как вы создавали текстовый файл в домашней папке, за исключением того, что на этот раз вы должны указать его имя с расширением .sh вместо расширения .txt. Мы назвали наш Bash-файл ForEachLine.sh, но вы можете дать ему любое имя по вашему выбору.
    Создание сценария Bash

    Откройте этот файл, дважды щелкнув по нему, а затем введите сценарий, показанный на изображении ниже, во вновь созданный файл Bash. Здесь первая строка указывает, что следующий сценарий является сценарием Bash. Мы просто создали переменную с именем File и присвоили ей имя нашего текстового файла в качестве ее значения, то есть ForEachLine.txt. Затем мы создали переменную с именем Lines и приравняли ее к $ (cat $ File). Здесь команда cat считывает содержимое нашего текстового файла, и если ему предшествует символ $, то содержимое, прочитанное этой командой, будет сохранено в переменной Lines. Таким образом, все строки файла с именем ForEachLine.txt будут сохранены в переменной Lines. Затем мы применили цикл For, в котором есть итератор Line. Этот итератор работает с переменной Lines, которую мы создали выше, и будет перебирать все строки одну за другой. Затем в блоке do-done мы просто отобразили все эти строки на терминале, используя команду echo.
    Создание Bash Script2

    Шаг № 3: Запуск сценария Bash:

    Теперь запустите терминал в Ubuntu 20.04, а затем выполните в нем следующую команду, чтобы выполнить созданный выше сценарий Bash:
    bash ForEachLine.sh
    Запуск сценария Bash

    Когда эта команда запустит сценарий bash, вы сможете увидеть все строки текстового файла на своем терминале, как показано на следующем изображении:
    Запуск сценария Bash

    Метод № 2: для сохранения всех строк чтения в другом файле:

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

    Шаг №1: изменение созданного выше сценария Bash и его запуск:

    Откройте сценарий Bash, созданный описанным выше способом, и измените его, как показано на следующем изображении. Мы просто добавили символ >>, за которым следует новое имя файла после команды echo в блоке do-done. Эта модификация сохранит все прочитанные строки в новый текстовый файл вместо того, чтобы отображать их на терминале. Теперь снова запустите сценарий Bash через терминал с помощью команды bash, за которой следует имя файла Bash. На этот раз при запуске сценария Bash будет создан новый текстовый файл, имя которого в данном случае - NewFile.txt.
    Изменение созданного выше сценария Bash и его запуск 1

    Шаг № 2: Доступ к недавно созданному текстовому файлу:

    Чтобы проверить, все ли прочитанные строки были сохранены в новый текстовый файл, вы можете просто просмотреть содержимое этого файла, выполнив следующую команду в своем терминале:
    кот NewFile.txt
    Доступ к недавно созданному текстовому файлу
    Результат, показанный на изображении ниже, убедит вас, что все прочитанные строки были скопированы в новый текстовый файл.
    Доступ к недавно созданному текстовому файлу 2

    Заключение:

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