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, когда обработка текста становится сложной. У каждого из этих инструментов и языков есть свои случаи использования и соображения по производительности.
Смотрите также
- Руководство по программированию на Bash: https://www.gnu.org/software/bash/manual/
sedиawk101 Хитрости: https://www.thegeekstuff.com/2009/12/unix-sed-tutorial-6-examples-to-edit-file-in-place/- Обработка текста в командной строке Linux с помощью
grep,awk,sed,sortи друзей: https://github.com/learnbyexample/Command-line-text-processing