Bash За всеки ред във файл

Bash Each Line File



Цикълът For в Bash може да се използва с различни варианти за изпълнение на множество задачи. Един такъв вариант е За всеки ред във файла, който е отговорен за четене на всички редове във файл. В тази статия ще говорим за методите за използване за всеки ред във файл в Bash.

Забележка: Показаните по -долу методи са демонстрирани на Ubuntu 20.04. Те обаче ще работят добре и с всяка друга дистрибуция на Linux.







Методи за използване за всеки ред във файл в Bash:

В тези методи ще ви покажем пример, в който можете да прочетете всеки ред от файл и след това можете или да го покажете на терминала, или дори да съхранявате тези редове в друг файл. Нека да разгледаме и двата метода.



Метод # 1: За показване на линиите за четене на терминала:

За да покажете редовете на файл на терминала, като използвате за всеки ред във файла, ще трябва да изпълните следните стъпки:



Стъпка # 1: Създаване на фиктивен текстов файл:

На първо място, трябва да създадете текстов файл с някои случайни данни в името на демонстрацията. Въпреки че този текстов файл може да бъде създаден навсякъде, силно се препоръчва да го създадете в началната папка. За да направите това, кликнете върху иконата File Manager, подчертана на изображението, показано по -долу:





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

    Сега щракнете с десния бутон на мишката навсякъде в началната папка и изберете опцията Нов документ от менюто, което се показва. След това изберете опцията Празен документ. След като в домашната ви папка е създаден празен документ, посочете избраното от него име, последвано от разширението .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, който има итерационен ред. Този итератор работи върху променливата Lines, която сме създали по -горе, и ще преглежда всички редове един по един. След това в блока do-done просто показахме всички тези редове на терминала, като използваме командата echo.
    Създаване на Bash скрипт 2

    Стъпка # 3: Изпълнение на Bash Script:

    Сега стартирайте терминала в Ubuntu 20.04 и след това изпълнете следната команда в него, за да изпълните скрипта Bash, създаден по -горе:
    bash ForEachLine.sh
    Стартиране на Bash Script

    Когато тази команда накара bash скрипта да се изпълни, тогава ще можете да видите всички редове на вашия текстов файл на терминала си, както е показано на следното изображение:
    Стартиране на Bash Script

    Метод # 2: За запазване на всички прочетени редове в друг файл:

    В този метод ние леко променихме скрипта Bash, създаден по метода по -горе, за да запишете всички прочетени редове в нов текстов файл, вместо да ги показвате на терминала. За да направите това, изпълнете стъпките, споменати по -долу:

    Стъпка # 1: Промяна на създадения по -горе скрипт на Bash и неговото изпълнение:

    Отворете скрипта Bash, който сте създали в горния метод и го променете, както е показано на следващото изображение. Ние просто добавихме символа >>, последван от ново име на файл след командата echo в рамките на do-done блока. Тази модификация ще запише всички прочетени редове в нов текстов файл, вместо да ги показва на терминала. Сега стартирайте отново скрипта Bash чрез терминала с командата bash, последвана от името на файла Bash. Този път, когато скриптът Bash ще се изпълнява, той ще създаде нов текстов файл, чието име в този случай е NewFile.txt.
    Промяна на създадения по -горе скрипт на Bash и неговото стартиране

    Стъпка 2: Достъп до новосъздадения текстов файл:

    За да проверите дали всички прочетени редове са запазени в новия текстов файл, можете просто да видите съдържанието на този файл, като изпълните следната команда във вашия терминал:
    котка NewFile.txt
    Достъп до новосъздадения текстов файл
    Изходът, показан на изображението по -долу, ще ви увери, че всички прочетени редове са копирани в новия текстов файл.
    Достъп до новосъздадения текстов файл2

    Заключение:

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