Чтение текстового файла

Bash:
Чтение текстового файла

Как:

Вот самый простой способ построчного чтения файла:

while IFS= read -r line; do
    echo "Текст: $line"
done < "yourfile.txt"

Хотите прочитать весь файл сразу? Попробуйте это:

file_content=$(<yourfile.txt)
echo "$file_content"

Или вам нужна конкретная строка, скажем, строка 4?

sed '4q;d' yourfile.txt

Пример вывода при чтении строки 4:

Это содержимое четвертой строки.

Погружение

В старые времена, когда у нас не было изысканных IDE, были терминалы и простые текстовые редакторы. Инструменты UNIX были задуманы с философией хорошо делать одно дело. cat, less, sed и awk - ветераны по манипуляции с текстом.

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

sed - это редактор потока. Захват конкретной строки с помощью sed '4q;d' yourfile.txt говорит sed остановиться после 4 строки (4q) и затем напечатать (;d) эту строку.

Существуют альтернативы. awk мощный для обработки текста. Скрипты Perl и Python могут быть вызваны внутри Bash, когда обработка текста становится сложной. У каждого из этих инструментов и языков есть свои случаи использования и соображения по производительности.

Смотрите также

  1. Руководство по программированию на Bash: https://www.gnu.org/software/bash/manual/
  2. sed и awk 101 Хитрости: https://www.thegeekstuff.com/2009/12/unix-sed-tutorial-6-examples-to-edit-file-in-place/
  3. Обработка текста в командной строке Linux с помощью grep, awk, sed, sort и друзей: https://github.com/learnbyexample/Command-line-text-processing