Bash                
            Использование кота
        
        
            
    Поиск…
Синтаксис
- cat [OPTIONS] ... [FILE] ...
параметры
| вариант | подробности | 
|---|---|
| -n | Номера строк печати | 
| -v | Показывать непечатаемые символы с использованием ^ и M-нотации, кроме LFD и TAB | 
| -T | Показывать символы TAB как ^ I | 
| -E | Показывать символы перевода строки (LF) в виде $ | 
| -e | То же, что и -vE | 
| -b | Число непустых выходных строк, переопределяет -n | 
| -А | эквивалентно -vET | 
| -s | подавлять повторяющиеся пустые выходные строки, s означает сжатие | 
замечания
 cat может читать как файлы, так и стандартные входы и объединяет их со стандартным выходом 
Печать содержимого файла
cat file.txt
будет печатать содержимое файла.
 Если файл содержит символы, отличные от ASCII, вы можете символически отображать эти символы с cat -v . Это может быть весьма полезно для ситуаций, когда контрольные символы в противном случае были бы невидимыми. 
cat -v unicode.txt
 Очень часто для интерактивного использования вам лучше использовать интерактивный пейджер, например, less или more . ( less чем more и рекомендуется использовать less часто, чем more ). 
less file.txt
Чтобы передать содержимое файла в качестве ввода команды. Подход, обычно рассматриваемый как лучший ( UUOC ), заключается в использовании перенаправления.
tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z
 В случае, если содержимое нужно перечислить назад с его конца, можно использовать команду tac : 
tac file.txt
 Если вы хотите распечатать содержимое с номерами строк, используйте -n с cat : 
cat -n file.txt
 Чтобы отобразить содержимое файла в абсолютно однозначной побайтовой форме, шестнадцатеричный дамп является стандартным решением. Это полезно для очень коротких фрагментов файла, например, когда вы не знаете точное кодирование. Стандартная утилита hex dump - od -cH , хотя представление немного громоздко; общие замены включают xxd и hexdump . 
$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld
Отображать номера строк с выводом
 Используйте флаг --number для печати номеров строк перед каждой строкой. Альтернативно, -n делает то же самое. 
$ cat --number file
 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5
 Чтобы пропустить пустые строки при подсчете строк, используйте --number-nonblank или просто -b . 
$ cat -b file
 1  line 1
 2  line 2
 3  line 4
 4  line 5
Чтение со стандартного ввода
cat < file.txt
 Результат такой же, как cat file.txt , но он считывает содержимое файла со стандартного ввода, а не непосредственно из файла. 
printf "first line\nSecond line\n" | cat -n 
 Команда эха перед | выводит две строки. Команда cat действует на выходе для добавления номеров строк. 
Объединить файлы
 Это основная цель cat . 
cat file1 file2 file3 > file_all
 cat также можно использовать аналогично файлам конкатенации в составе конвейера, например 
cat file1 file2 file3 | grep foo
Запись в файл
cat >file
Это позволит вам написать текст на терминале, который будет сохранен в файле с именем file .
cat >>file
будет делать то же самое, за исключением того, что он добавит текст в конец файла.
NB: Ctrl + D для завершения написания текста на терминале (Linux)
Этот документ можно использовать для встраивания содержимого файла в командную строку или скрипт:
cat <<END >file
Hello, World.
END
 Токен после символа << перенаправления - это произвольная строка, которая должна встречаться одна в строке (без начального или конечного пробела), чтобы указать конец документа здесь. Вы можете добавить цитирование, чтобы предотвратить выполнение командной строки и интерполяцию переменных: 
cat <<'fnord'
Nothing in `here` will be $changed
fnord
 (Без кавычек here будет выполняться как команда, а $changed будет заменено значением changed переменной - или ничего, если оно не определено). 
Показывать непечатаемые символы
Это полезно, чтобы увидеть, есть ли какие-либо непечатаемые символы или символы, отличные от ASCII.
 например, если вы скопировали код из Интернета, у вас могут быть такие цитаты, как ” вместо стандартного " . 
$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.
например
$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $
 Вы также можете использовать cat -A (A для всех), который эквивалентен cat -vET . Он отобразит символы TAB (отображается как ^I ), непечатаемые символы и конец каждой строки: 
$ echo '” `' | cat -A
M-bM-^@M-^]^I`$
Конкатенация файлов gzipped
 Файлы, сжатые gzip могут быть напрямую объединены в файлы большего размера. 
cat file1.gz file2.gz file3.gz > combined.gz
 Это свойство gzip , которое менее эффективно, чем конкатенация входных файлов и gzipping результат: 
cat file1 file2 file3 | gzip > combined.gz
Полная демонстрация:
echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt 
gzip howdy.txt
cat hello.txt.gz howdy.txt.gz > greetings.txt.gz
gunzip greetings.txt.gz
cat greetings.txt
В результате
Hello world!
Howdy world!
 Обратите внимание, что greetings.txt.gz является одним файлом и распаковывается как один файл greeting.txt . Сравните это с tar -czf hello.txt howdy.txt > greetings.tar.gz , который хранит файлы отдельно в tarball.