Текстовые файлы

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

Последнее обновление: 12.03.2024

Текстовые файлы играют важную роль в Linux. Это могут быть различные файлы конфигурации, логи и т.д. И Linux предоставляет инструментарий для работы с текстовыми файлами. Распространенные команды для вывода содержимого файлов:

  • cat: отображает содержимое файла.

  • tac: делает то же самое, что и cat, но отображает содержимое в обратном порядке.

  • tail: показывает только последние строки текстового файла.

  • head: отображает первые строки файла.

  • less: открывает расширенную программу просмотра файлов.

  • more: то же самое, что и less, только с меньшими возможностями.

Например, выведем с помощью команды cat файл /etc/hosts:

eugene@Eugene:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Eugene

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Команда tac отобразит все строки в обратном порядке:

eugene@Eugene:~$ tac /etc/hosts
ff02::2 ip6-allrouters
ff02::1 ip6-allnodes
ff00::0 ip6-mcastprefix
fe00::0 ip6-localnet
::1     ip6-localhost ip6-loopback
# The following lines are desirable for IPv6 capable hosts

127.0.1.1 Eugene
127.0.0.1 localhost

Команда tail отображает последние строки файла (по умолчанию 10 последних). Но также ей можно передать конкретное количество строк (с конца). Например, вывелем три последние строки:

eugene@Eugene:~$ tail -3 /etc/hosts
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Команда head аналогична tail, только отображает первые строки файла (по умолчанию 10 первых). И она также может принимать конкретное количество строк (с конца). Например, вывелем три первых строки:

eugene@Eugene:~$ head -3 /etc/hosts
127.0.0.1 localhost
127.0.1.1 Eugene

Комбинируя команды head и tail, можно получить определенную строку или опеределенный набор строк с начала или конца. Например, получим только 2-ю строку:

eugene@Eugene:~$ head -n 2 /etc/hosts | tail -n 1
127.0.1.1 Eugene

В данном случае выражение head -n 2 /etc/hosts сначала выбирает из файла 2 первых строки. Далее эти 2 строки передаются команде tail -n 1, которая выбирает из них последнюю (то есть фактически 2-ю строку).

Команда less открывает файл в специальном окружении, которое напоминает встроенный текстовый редактор vi:

eugene@Eugene:~$ less /etc/hosts

127.0.0.1 localhost
127.0.1.1 Eugene

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/hosts (END)

Для выхода из окружения просмотра файла нажмем на q.

Результат других команд как текст

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

eugene@Eugene:~$ ls -l | tail -n 2
drwxrwxr-x  2 eugene eugene  4096 Mar  9 10:41 Templates
drwxrwxr-x  2 eugene eugene  4096 Mar  9 09:49 Videos
eugene@Eugene:~$ 
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850