Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games

Изучаем Bash: Вывод содержимого файла

Две команды head и tail. Первая позволяет вывести первые N строк (байт) документа, вторая то же самое для последних N строк.

tail -c 8 file.txt

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

head -n 2 file.txt

А эта команда выведет первые две строки файла file.txt.

Очень интересная команда paste, которая позволяет совместить содержимое двух файлов. Представьте, что в файле names.txt у вас имена, а в файле grades.txt оценки.

names.txt:

  • Petrov
  • Ivanov
  • Sidorov

grades.txt:

  • 5
  • 4
  • 5

Что, если у нас огромный список и мы хотим для строки в первом файле увидеть соответствующую строку второго файла? Для этого и есть команда paste:

paste names.txt grades.txt

После чего мы получаем:

  • Petrov 5
  • Ivanor 4
  • Sidorov 5

Команда more позволяет постранично просматривать содержимое файла. Команда less, как это ни иронично, предоставляет все тот же функционал, что и more, но немного расширенный, включая скроллинг вперед и назад по тексту, поиск по паттерну, подсветка найденного слова, vi-style навигация и пр.

more - это устаревшая команда, которую использовать следует только тогда, когда вы сидите на старой машине, где нет команды less, для всего остального подходит именно последняя.

Команда cat позволяет объединить содержание нескольких файлов. Происходит от conCATenation. Многие используют эту команду не по назначению, когда нужно просмотреть содержание одного файла. Для таких случаев лучше подходит less. Даже когда необходимо использовать пайп (|) для передачи содержимого файла другой команде, less в таких случаях будет работать так же, как и cat. 

Почему нежелательно использовать cat для просмотра одного файла. Во-первых, это не то, для чего она предназначена. Во-вторых, чаще всего можно избежать использование команды cat. Понятие "Useless use of cat" стало уже известной байкой (Википедия).

Существовала даже награда The useless use of cat award, которая присуждалась наиболее неуместному использованию команды cat. Кому интересно, есть нечто подобное и для других команд - http://partmaps.org/era/unix/award.html.

Linux_man аватар

Сергей, отлично! :) теперь мы с тобой вдвоем про bash людям рассказываем :))

skim1776 аватар

да, правда, надо выделить время, чтобы каждую неделю чего-нибудь новое изучать

Linux_man аватар

+10000!

BAF аватар

Лесс лесом, а коты повсюду. Я не встречал еще в чужих скриптах лесов, все пользуются котами.

Эксперт - зто человек, который совершил все возможные ошибки в очень узкой специальности.

Linux_man аватар

Кстати, о перенаправлении еще писал в этой части статей про bash: Изучаем Bash. Перенаправление информации в файл

DIV аватар

тоже надо начинать в bash вникать, я думаю с ващими статьями начну уже :=)