Linux вывод части файла

Linux вывод части файла

Библиотека сайта rus-linux.net

Также мы познакомимся с возможностями таких инструментов с интерфейсом командной строки, как cat .

Утилита head

paul@laika:~$ head /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh paul@laika:~$
paul@laika:~$ head -4 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh
paul@laika:~$ head -c4 /etc/passwd rootpaul@laika:~$

Утилита tail

По аналогии с утилитой head, утилита tail может использоваться для вывода последних десяти строк файла.

paul@laika:~$ tail /etc/services vboxd 20012/udp binkp 24554/tcp # binkp fidonet protocol asp 27374/tcp # Address Search Protocol asp 27374/udp csync2 30865/tcp # cluster synchronization tool dircproxy 57000/tcp # Detachable IRC Proxy tfido 60177/tcp # fidonet EMSI over telnet fido 60179/tcp # fidonet EMSI over TCP # Local services paul@laika:~$

Вы можете передать утилите tail число, соответствующее количеству строк, которое вы хотите увидеть в выводе.

$ tail -3 count.txt шесть семь восемь

Утилита tail поддерживает и другие полезные параметры, причем некоторые из них мы будем использовать в рамках данного курса.

Утилита cat

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

paul@laika:~$ cat /etc/resolv.conf nameserver 194.7.1.4 paul@laika:~$

Имя утилиты cat является сокращенной формой слова concatenate (объединить). Одним из наиболее простых сценариев использования данной утилиты является объединение файлов в рамках файла большего объема (или полного файла).

paul@laika:~$ echo один > part1 paul@laika:~$ echo два > part2 paul@laika:~$ echo три > part3 paul@laika:~$ cat part1 part2 part3 один два три paul@laika:~$

Также вы можете использовать утилиту cat для создания текстовых файлов. Введите команду cat > winter.txt , приведенную в примере ниже. После этого введите одну строку или несколько строк текста, завершая ввод каждой из строк нажатием клавиши Enter. После ввода последней строки текста нажмите и удерживайте клавишу Ctrl и одновременно с этим кратковременно нажмите клавишу d.

paul@laika:~/test$ cat > winter.txt Сегодня очень холодно! paul@laika:~/test$ cat winter.txt Сегодня очень холодно! paul@laika:~/test$

Комбинация клавиш Ctrl+d позволяет передать исполняющемуся процессу символ окончания файла (End of File — EOF), что приведет приведет к завершению исполнения процесса cat .

Читайте также:  Java configuration in linux

Специальный маркер окончания файла

Вы можете установить специальный маркер окончания файла для утилиты cat с помощью параметра

paul@laika:~/test$ cat > hot.txt Сегодня жарко! > Да, это лето. > stop paul@laika:~/test$ cat hot.txt Сегодня жарко! Да, это лето. paul@laika:~/test$

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

paul@laika:~/test$ cat winter.txt Сегодня очень холодно! paul@laika:~/test$ cat winter.txt > cold.txt paul@laika:~/test$ cat cold.txt Сегодня очень холодно! paul@laika:~/test$

Утилита tac

Предназначение утилиты tac (в отличие от утилиты cat) может быть проиллюстрировано с помощью единственного примера.

paul@laika:~/test$ cat count один два три четыре paul@laika:~/test$ tac count четыре три два один paul@laika:~/test$

Утилиты more и less

Утилита more может оказаться полезной в случае возникновения необходимости вывода содержимого файлов, которое не умещается на экране. Утилита more позволяет ознакомится с содержимым файла, разделенным на страницы. После открытия файла с использованием данной утилиты следует использовать клавишу «пробел» для перехода к следующей странице или клавишу q для выхода из режима просмотра содержимого файла. Некоторые пользователи предпочитают использовать утилиту less вместо утилиты more .

Утилита strings

С помощью утилиты strings вы можете осуществить вывод читаемых человеком ascii-строк, которые обнаруживаются в бинарных файлах. В приведенном ниже примере выясняется путь к бинарному файлу ls , после чего осуществляется вывод читаемых пользователем строк из этого бинарного файла (вывод сокращен).

paul@laika:~$ which ls /bin/ls paul@laika:~$ strings /bin/ls /lib/ld-linux.so.2 librt.so.1 __gmon_start__ _Jv_RegisterClasses clock_gettime libacl.so.1 .

Практическое задание: работа с содержимым файлов

1. Осуществите вывод первых 12 строк файла /etc/services .

2. Осуществите вывод последней строки файла /etc/passwd .

3. Используйте утилиту cat для создания файла с именем count.txt , содержимое которого выглядит следующим образом:

4. Используйте утилиту cp для создания резервной копии этого файла с именем cnt.txt .

5. Используйте утилиту cat для создания резервной копии этого файла с именем catcnt.txt .

6. Осуществите вывод содержимого файла catcnt.txt таким образом, чтобы строки из файла были выведены в обратном порядке.

7. Используйте утилиту more для вывода содержимого файла /var/log/messages .

8. Осуществите вывод читаемых пользователем строк из бинарного файла /usr/bin/passwd .

9. Используйте утилиту ls для поиска файла наибольшего размера в директории /etc .

Читайте также:  What is rescue mode in linux

10. Откройте два окна терминала (или вкладки) и убедитесь в том, что в каждом из окон открыта одна и та же директория. Введите команду echo это первая строка > tailing.txt в первом окне терминала, после чего выполните команду tail -f tailing.txt во втором окне терминала. Теперь перейдите в первое окно терминала и введите команду echo это вторая строка >> tailing.txt (обратите внимание на два символа >>), после чего убедитесь в том, что средствами команды tail -f во втором окне терминала выводятся обе строки. Прекратите исполнение команды tail -f с помощью сочетания клавиш Ctrl+C .

11. Используйте утилиту cat для создания файла с именем tailing.txt , в котором должны содержаться данные из самого файла tailing.txt , после которых в него должны быть добавлены данные из файла /etc/passwd .

12. Используйте утилиту cat для создания файла с именем tailing.txt , в котором должны содержаться данные из самого этого файла tailing.txt , перед которыми в него должны быть добавлены данные из файла /etc/passwd .

Корректная процедура выполнения практического задания: работа с содержимым файлов

1. Осуществите вывод первых 12 строк файла /etc/services .

2. Осуществите вывод последней строки файла /etc/passwd .

3. Используйте утилиту cat для создания файла с именем count.txt , содержимое которого выглядит следующим образом:

cat > count.txt Один Два Три Четыре Пять (ввод должен завершаться с помощью комбинации клавиш Ctrl+d)

4. Используйте утилиту cp для создания резервной копии этого файла с именем cnt.txt .

5. Используйте утилиту cat для создания резервной копии этого файла с именем catcnt.txt .

6. Осуществите вывод содержимого файла catcnt.txt таким образом, чтобы строки из файла были выведены в обратном порядке.

7. Используйте утилиту more для вывода содержимого файла /var/log/messages .

8. Осуществите вывод читаемых пользователем строк из бинарного файла /usr/bin/passwd .

9. Используйте утилиту ls для поиска файла наибольшего размера в директории /etc .

10. Откройте два окна терминала (или вкладки) и убедитесь в том, что в каждом из окон открыта одна и та же директория. Введите команду echo это первая строка > tailing.txt в первом окне терминала, после чего выполните команду tail -f tailing.txt во втором окне терминала. Теперь перейдите в первое окно терминала и введите команду echo это вторая строка >> tailing.txt (обратите внимание на два символа >>), после чего убедитесь в том, что средствами команды tail -f во втором окне терминала выводятся обе строки. Прекратите исполнение команды tail -f с помощью сочетания клавиш Ctrl+C .

11. Используйте утилиту cat для создания файла с именем tailing.txt , в котором должны содержаться данные из самого файла tailing.txt , после которых в него должны быть добавлены данные из файла /etc/passwd .

cat /etc/passwd >> tailing.txt

12. Используйте утилиту cat для создания файла с именем tailing.txt , в котором должны содержаться данные из самого этого файла tailing.txt , перед которыми в него должны быть добавлены данные из файла /etc/passwd .

mv tailing.txt tmp.txt ; cat /etc/passwd tmp.txt > tailing.txt
Предыдущий раздел: Оглавление Следующий раздел:
Глава 7. Работа с файлами Глава 9. Дерево директорий Linux
Читайте также:  Linux path to filename

Источник

Просмотр содержимого файлов в командной строке Linux

Просмотр содержимого файлов в командной строке Linux

Рассмотрим несколько команд, которые используются для просмотра содержимого текстовых файлов в командной строке Linux.

Команда cat

Команда cat выводит содержимое файла, который передается ей в качестве аргумента.

Это самый простой и наиболее часто используемый способ для вывода содержимого текстовых файлов. Но выводить большие файлы через cat не всегда удобно.

Команда cat

Команда nl

Команда nl действует аналогично команде cat , но выводит еще и номера строк в столбце слева.

Команду nl удобно применять для просмотра программного кода или поиска строк в файлах конфигурации.

Команда nl

Команда less

Утилита less выводит содержимое файла, но отображает его только в рамках текущего окна в режиме просмотра.

Команда less

Вы можете прокручивать текст файла клавишами стрелок или перелистывать страницы клавишами w и z .

Для поиска текста внутри файла нажмите / .

Для просмотра списка доступных горячих клавиш нажмите h

Чтобы выйти из режима просмотра используется клавиша q .

Очень удобно, что после выхода окно терминала остается чистым и не содержит текст файла.

Команда more

Команда more очень похожа на команду less . Она также выводит файл в терминале в режиме просмотра, но имеет некоторые отличия от команды less.

Например, less в конце файла выводит сообщение (END) (или EOF — End Of File) и ожидает нажатия клавиши q чтобы закрыть режим просмотра, а more по достижении конца файла сразу возвращает управление в терминал.

Также more после своей работы оставляет текст файла в терминале, а less работает «чисто» и не сохраняет текст в терминале.

Команда head

Команда head выводит на экран только первые 10 строк файла.

Используя опцию -n можно задать количество строк, которое нужно вывести. Например, чтобы вывести 15 строк используется команда:

Вместо -n можно просто использовать знак минус — , за которым сразу указывается количество строк.

Команда head

Команда tail

Команда tail аналогична команде head , но выводит последние 10 строк файла.

Заключение

Команды, которые мы рассмотрели, имеют дополнительные возможности и области применения. Для получения справки по каждой команде можно воспользоваться Man-страницами.

man cat man nl man less man more man head man tail

Источник

Оцените статью
Adblock
detector