cat в Linux — всё что нужно знать. Ubuntu cat
Команда cat Linux | Losst
Команда cat - это одна из самых часто используемых команд Linux. Она часто применяется опытными пользователями во время работы с терминалом. С помощью этой команды можно очень просто посмотреть содержимое небольшого файла, склеить несколько файлов и многое другое.
Несмотря на то что утилита очень проста и решает только одну задачу в лучшем стиле Unix, она будет очень полезной. А знать о ее дополнительных возможностях вам точно не помешает. В этой статье будет рассмотрена команда cat linux, ее синтаксис, опции и возможности.
Содержание статьи:
Команда cat
Название команды - это сокращения от слова catenate. По сути, задача команды cat очень проста - она читает данные из файла или стандартного ввода и выводит их на экран. Это все, чем занимается утилита. Но с помощью ее опций и операторов перенаправления вывода можно сделать очень многое. Сначала рассмотрим синтаксис утилиты:
$ cat опции файл1 файл2 ...
Вы можете передать утилите несколько файлов и тогда их содержимое будет выведено поочередно, без разделителей. Опции позволяют очень сильно видоизменить вывод и сделать именно то, что вам нужно. Рассмотрим основные опции:
- -b - нумеровать только непустые строки;
- -E - показывать символ $ в конце каждой строки;
- -n - нумеровать все строки;
- -s - удалять пустые повторяющиеся строки;
- -T - отображать табуляции в виде ^I;
- -h - отобразить справку;
- -v - версия утилиты.
Это было все описание linux cat, которое вам следует знать, далее рассмотрим примеры cat linux.
Использование cat в Linux
Самое простое и очевидное действие, где используется команда cat linux - это просмотр содержимого файла, например:
cat file
Команда просто выведет все, что есть в файле. Чтобы вывести несколько файлов достаточно просто передать их в параметрах:
cat file file1
Как вы знаете, в большинстве команд Linux стандартный поток ввода можно обозначить с помощью символа "-". Поэтому мы можем комбинировать вывод текста из файла, а также стандартного ввода:
cat file - file1
Теперь перейдем к примерам с использованием ранее рассмотренных опций, чтобы нумеровать только непустые строки используйте:
cat -b file
Также вы можете нумеровать все строки в файле:
cat -n file
Опция -s позволяет удалить повторяющиеся пустые строки:
cat -s file
А с помощью -E можно сообщить утилите, что нужно отображать символ $ в конце каждой строки:
cat -E file
Если вы не передадите никакого файла в параметрах утилите, то она будет пытаться читать данные из стандартного ввода:
cat
Для завершения записи нажмите Ctrl+D. Таким образом можно получить очень примитивный текстовый редактор - прочитаем ввод и перенаправим его вместо вывода на экран в файл:
cat > file2$ cat file2
Возможность объединения нескольких файлов не была бы настолько полезна, если бы нельзя было записать все в один:
cat file1 file2 > file3$ cat file3
Вот, собственно, и все возможности команды cat, которые могут быть полезны для вас.
Выводы
В этой статье мы рассмотрели что представляет из себя команда cat linux и как ею пользоваться. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
losst.ru
13 основных примеров команды сat в Linux
13 основных примеров команды сat в Linux
07.03.2013 12:02
Команда cat (сокращенно от «concatenate») является одной из наиболее часто используемой командой в Linux Unix-подобных операционных системах. Команда cat позволяет создать один или несколько файлов, просмотреть содержание файлов, объединять файлы и перенаправлять вывод в терминал или файлы. В этой статье мы выясним, насколько удобно использование команд cat с примерами в Linux.
Общий синтаксис
cat [OPTION] [FILE]...1. Показать содержание файла
В приведенном ниже примере показано что содержится в файле /etc/passwd.
# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin narad:x:500:500::/home/narad:/bin/bash2. Посмотреть вместимое нескольких файлов в терминале
В примере ниже показано как отобразить содержимое в test и test1 файл в терминале.
# cat test test1 Hello everybody Hi world,3. Создание файла с командой cat
Мы создадим файл с именем test2
# cat >test2Ожидая ввод от пользователя, наберите необходимый текст и нажмите Ctrl + D (нажмите и удерживайте клавишу Ctrl и наберите 'D'), чтобы выйти. Текст будет написан на test2 файле. Вы можете увидеть содержимое файлов со следующей командой cat.
# cat test2 hello everyone, how do you do?4. Используйте команду cat с опциями more & less
Если файл имеет большую информационную наполненность, то он не поместится в выходной разъем и экран прокрутится вверх очень быстро. В таком случае мы можем использовать параметры more & less с командой cat, как показано выше.
# cat song.txt | more # cat song.txt | less5. Отображение номеров строк в файле
С опцией -n вы можете увидеть номера строк файла song.txt в выходном терминале.
# cat -n song.txt 1 "Heal The World" 2 There's A Place In 3 Your Heart 4 And I Know That It Is Love 5 And This Place Could 6 Be Much 7 Brighter Than Tomorrow 8 And If You Really Try 9 You'll Find There's No Need 10 To Cry 11 In This Place You'll Feel 12 There's No Hurt Or Sorrow6. Отображение $ в конце файла
В приведенном ниже примере, можно увидеть с опцией -e, что "$" появляется в конце линии, а также если есть разрыв между пунктами. Эта опция полезна для того, чтобы собрать несколько строк в одну строку.
# cat -e test hello everyone, how do you do?$ $ Hey, am fine.$ How's your training going on?$ $7. Показать разделение строк Tab в файле
В приведенном ниже выходе мы видим как пространство TAB заполняется символом " ^I".
# cat -T test hello ^Ieveryone, how do you do? Hey, ^Iam fine. ^I^IHow's your training ^Igoing on? Let's do ^Isome practice in Linux.8. Одновременное отображение нескольких файлов
В приведенном ниже примере мы имеем три файла test, test1 и test2 и возможность просмотра содержимого этих файлов, как показано выше. Мы должны разделить каждый файл с ; (точка с запятой).
# cat test; cat test1; cat test2 This is test file This is test1 file. This is test2 file.9. Используйте стандартный вывод с оператором перенаправления
Мы можем перенаправить стандартный вывод в файл в новый файл другого существующего файла с символом ' > '(больше). Осторожно, содержимое из test1 будет перезаписано в содержимое файла test.
# cat test > test110. Добавление стандартного выход с оператором перенаправления
Добавление в существующий файл символами ' >> '(двойные больше). Здесь содержимое в файле test будет добавлено в конце файла test1.
# cat test >> test111. Перенаправление стандартного ввода с оператором перенаправления
Когда вы используете перенаправление со стандартным входом ' < '( символ меньше), он использует имя файла test2 в качестве входа для команды и выход будет показан в терминале.
# cat < test2 This is test2 file.12. Перенаправление содержимого нескольки файлов в однин файл
Тут создается файл с именем test3 и все исходящие будут перенаправлены во вновь созданный файл.
# cat test test1 test2 > test313. Сортировка содержимого нескольких файлов в один файл
Тут создается файл test4 и выход команды cat по конвейеру для сортировки; результат будет перенаправлен во вновь созданный файл.
# cat test test1 test2 test3 | sort > test4www.rootfront.com
cat в Linux - всё что нужно знать • Сам себе администратор
90% книг написанных про Linux начинают знакомство с командной строкой с cat. По статистике (на которую все ссылаются, но которую ни кто не видел), cat является самой часто употребляемой командой в Linux. Так что же делает это чудо-команда?
cat образовано от английского concatenate (объединять), т.е. логично предположить команда предназначена для объединения чего то с чем, например нескольких файлов. Но чаще всего cat используют для создания файлов и для вывода содержимого файла непосредственно в консоль. Давайте разберем все возможности этой команды подробнее.
Создание нового файла с помощью cat
[hc@host ~]# cat > new_file это новый файл
[hc@host ~]# cat > new_file это новый файл |
С помощью cat и символа > мы перенаправили стандартный вывод в файл new_file. Для завершения заполнения файла данными перейдите на новую строку и нажмите Ctrl+D.
Просмотр файлов с помощью cat в Linux
Для просмотра файла просто наберите:#cat
[hc@host ~]# cat new_file это новый файл
[hc@host ~]# cat new_file это новый файл |
Можно вывести с номерами строк:
[hc@host ~]# cat -n new_file 1 это 2 новый 3 файл
[hc@host ~]# cat -n new_file 1 это 2 новый 3 файл |
Можно просмотреть содержимое нескольких файлов.
[hc@host ~]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Это старый файл
[hc@host ~]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Это старый файл |
Обратите внимание, что содержимое выводится единым массивом данных, что хорошо видно по тому, что содержание второго файла вывелось строкой под номером 4 — нумерация не началась заново при выводе этого файла. Т.е. cat, как это и заложено в ее названии, склеила файлы.
Просмотр больших файлов с помощью cat
Типичная рекомендация — если файл не влезает в экран консоли использовать cat в сочетании с less или more:
[hc@host ~]# cat -n long_file | less [hc@host ~]# cat -n long_file | more
[hc@host ~]# cat -n long_file | less [hc@host ~]# cat -n long_file | more |
Так вот, что я скажу — если вы уверены, что файл большой просто сразу используйте more, а лучше less.
[hc@host ~]# more long_file [hc@host ~]# less long_file
[hc@host ~]# more long_file [hc@host ~]# less long_file |
Их для этого и делали, а у cat свои задачи.
Копирование, объединение и дополнение файлов с помощью cat в Linux
Давайте создадим несколько файлов:
[root@wbtu ~]# cat > file1 line1 line3 [hc@host ~]# cat > file2 line2 line4
[root@wbtu ~]# cat > file1 line1 line3 [hc@host ~]# cat > file2 line2 line4 |
Нумерацию я специально сделал не по порядку, это нам еще понадобится.
Объединим файлы и посмотрим на результат:
[hc@host ~]# cat file1 file2 > file3 [hc@host ~]# cat file3 line1 line3 line2 line4
[hc@host ~]# cat file1 file2 > file3 [hc@host ~]# cat file3 line1 line3 line2 line4 |
Как видите file3 содержит информацию из обоих файлов.Теперь скопируем содержимое file3 в другой файл:
[hc@host ~]# cat file3 > copy_of_file3 [hc@host ~]# cat copy_of_file3 line1 line3 line2 line4
[hc@host ~]# cat file3 > copy_of_file3 [hc@host ~]# cat copy_of_file3 line1 line3 line2 line4 |
А теперь допишем в file3 еще несколько строк:
[hc@host ~]# cat >> file3 line6 line5 [hc@host ~]# cat file3 line1 line3 line2 line4 line6 line5
[hc@host ~]# cat >> file3 line6 line5 [hc@host ~]# cat file3 line1 line3 line2 line4 line6 line5 |
Точно так же можно дописать один файл в конец другого:
[hc@host ~]# cat new_file >> file3
[hc@host ~]# cat new_file >> file3 |
Несколько полезных примеров
Сортировка
Возьмем наш file3 с неправильным порядком строк и приведем в порядок:
[hc@host ~]# cat file3 | sort > sort_file
[hc@host ~]# cat file3 | sort > sort_file |
или так:
[hc@host ~]# cat file1 file2 | sort > sort_file
[hc@host ~]# cat file1 file2 | sort > sort_file |
У cat есть антипод tac. Вся разница, что вывод происходит в обратном порядке:
[hc@host~]# tac sort_file line4 line3 line2 line1
[hc@host~]# tac sort_file line4 line3 line2 line1 |
Отображение непечатаемых символов
Если что-то работает не так, как планировалось или совсем не работает — бывает полезно поглядеть не затесался ли какой вредный символ.Например, отредактировали конфиг через ftp под Win редактором (ни когда так не делайте), а он расставил, как в Win принято, в конце строк CRLF. И ни чего не работает.
[hc@host ~]# cat -v test_file hi there^M
[hc@host ~]# cat -v test_file hi there^M |
^M — вот он виновник.
Пропуск пустых строк
Еще один полезный ключ -s. При его использовании будут пропускаться все дублированные пустые строки:
[hc@host ~]# cat > blank_lines q a z [hc@host ~]# cat -s blank_lines q a z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [hc@host ~]# cat > blank_lines
q
a
z [hc@host ~]# cat -s blank_lines
q
a
z |
На этом пожалуй достаточно о cat в Linux. Остались вопросы — пишите в комментах.
host-consult.ru
cat linux
Команда cat в linux (полное описание) - это сокращение от concatenate. На самом деле это некая утилита, которая позволяет вам сцеплять, связывать файлы и т.д. Она может выводить содержимое файла, к примеру:
root@fantom-Lenovo:/home/jakudza# ls (ls - просмотр содержимого каталога) test.txt (то что сейчас в каталоге, один файл test.txt) root@fantom-Lenovo:/home/jakudza# cat test.txt (команда cat - читает файл test.txt) Это написано внутри файла test.txt |
Если содержимое файла очень большое, к примеру текст на 5000 символов. Может возникнуть проблема! Произойдёт быстрая прокрутка(мелькание) текста. В данном случае пишем вот так:
root@fantom-Lenovo:/home/jakudza# cat test.txt | less |
От простого к сложному:
Формат команды: cat filename1 [filename2... ]
Стандартно, команда cat может слить и вывести файл на стандартный вывод(т.е. на монитор). Или иначе говоря, данная команда просто выводит содержимое перечисленных файлов (filename, и т.д.) на стандартный вывод:
1. Команда ниже выведет на экран содержимое файла - «на стандартный вывод»:
2. Команда ниже "сливает" первые 2 файла, и перемещает их в третий filename3 (уточнение: команда взяла информацию из первого и второго файла. Появилась некая новая информация, состоящая из двух источников. И эту информацию мы передали не на "стандартный вывод", а в файл filename3, благодаря символу ">"):
cat filename1 filename2 > filename3 |
3. К примеру, если нам надо "соединить" 2 файла:
cat filename1 >> filename2 (Данной командой мы просто добавили содержимое первого файла ко второму) |
* Как мы видим в данных примерах используется ">"(одинарный или двойной) - запоминайте что он делает! Зачастую в Университете или ином месте, задают вопросы: допустим команда ">" - делает то-то, а что делает ">>"? и т.д.
4. Примеры «>»:
команда > имя_файла (для стандартного вывода)
команда < имя_файла (для переназначения стандартного ввода)
5. Перенаправление стандартного вывода:
- Перенаправление означает, что система должна использовать файл или устройство, указанное пользователем, вместо "стандартного ввода" или "стандартного вывода".
- Чтобы перенаправить стандартный вывод, используйте символ «>», о котором мы говорили выше.
- Размещение «>» после команды cat (или после любой другой команды, которая выдает результаты своей работы на "стандартный вывод") перенаправит результат ее работы "в файл", указанный за символом «>».
Что будет если команда cat без аргументов, при этом мы вводим значения, после нажатия клавиши "Enter":
[user@localhost ~]$ cat линукс номер один (мы ввели "линукс номер один") линукс номер один (тут же на экран выходит данная фраза) линукс первый (мы ввели "линукс первый") линукс первый (тут же на экран выходит данная фраза) |
* Что мы видим выше? Всё что мы вводили, ещё раз отображалось на экране.
А теперь попробуем перенаправить результат работы команды в файл:
[user@localhost ~]$ cat > filename1.txt линукс номер один линукс первый |
*после ввода команды нажимаем Enter - это приведёт к появлению пустой строки, куда вводим строку текста, для перехода к следующей строке, нажимаем снова "Enter" и т.д. Выход - [Ctrl]+[D].
Той же командой cat читаем что получилось:
[user@localhost ~]$ cat filename1.txt (таже команда, без «>» - другой результат) линукс номер один линукс первый |
*Данная команда показала что написано в файле, не путайте с верхним вариантом команды cat > filename1.txt где значения не отобразились благодаря команде, мы их вводили сами!
6. Попробуем "слить", см.пункт "2" и пункт "5":
В примере выше у нас создан файл: filename1.txt. Создадим ещё один файл filename2.txt:
[user@localhost ~]$ cat > filename2.txt линукс A линукс B |
Теперь у нас два файла filename1.txt и filename2.txt, с данными (разными). Затем при помощи команды cat добавим содержимое файла filename2.txt в конец файла filename1.txt и перенаправим результат в новый файл с названием filename3.txt:
[user@localhost ~]$ cat filename1.txt filename2.txt > filename3.txt |
Теперь посмотрим что у нас в файле filename3.txt:
[user@localhost ~]$ cat filename3.txt линукс номер один линукс первый линукс A линукс B |
* Надеюсь все эти чудеса у вас в голове сложились воедино)))
Теперь используя пункт "3", попробуем проделать вот что: возьмем два уже существующих файла (filename1.txt и filename2.txt) и объединим их, используя символ добавления. Чтобы добавить содержимое файла filename1.txt в файл filename2.txt, введите:
[user@localhost ~]$ cat filename1.txt >> filename2.txt [user@localhost ~]$ cat filename2.txt линукс номер один линукс первый линукс A линукс B |
А теперь сравним файлы filename2.txt и filename3.txt. Если вы всё делали как указано выше, то содержимое этих файлов окажется одинаковой, смотрим:
[user@localhost ~]$ cat filename1.txt; cat filename2.txt линукс номер один линукс первый линукс A линукс B линукс номер один линукс первый линукс A линукс B |
7. Перенаправление стандартного ввода:
Когда вы используете символ перенаправления стандартного ввода «<», вы сообщаете оболочке, что входные данные для программы следует брать из указанного вами файла.
[user@localhost ~]$ cat < filename2.txt линукс номер один линукс первый линукс A линукс B |
8. Опции команды cat:
Опция A показывает все невидимые символы.
Опция -E показывает символы конца строки.
Опция -e показывает непечатаемые символы плюс символ конца строки
Опция -T показывает символ табуляции
Опция -t показывает непечатаемые символы плюс символ табуляции
Опция -v показывает непечатаемые символы кроме табуляции и конца строки.
[user@localhost ~]$ cat -A newname.txt (в файле содержится: The most common use) ^IThe most common use$ |
*Где, ^I обозначает символ табуляции, $ - символ конца строки.
** С кириллическими символами все эти опции выводят какую-то абракадабру.
Опции -b и -n нумеруют строки вывода. Опция -b нумерует непустые строки, в отличии -n (нумерует все строки):
[user@localhost ~]$ cat -b newname2.txt 1 текст по Линуксу 2 текст по команде cat
3 текст по Linux cat |
[user@localhost ~]$ cat -n newname2.txt 1 текст по Линуксу 2 текст по команде cat 3 4 текст по Linux cat |
Опция -s подавляет вывод повторяющихся пустых строк.
Опции --help и --version общеизвестны и не нуждаются в пояснении.
9. Некоторые наиболее употребительные команды:
pwd - получить имя текущей директории
cd - изменить текущую директорию
ls - распечатать информацию о файлах или директориях
cat - слить или вывести файлы-аргументы на стандартный вывод
cp - копировать файлы
mv - переместить (переименовать) файлы
ln - создать ссылку на файл
rm - удалить файлы
rmdir - удалить директорию
mkdir - создать директорию
echo - вывести аргументы командной строки на стандартный вывод
ps - распечатать информацию и номера выполняемых процессов
kill - "убить" выполняемый процес по его номеру
man - выдать справку об использовании и ключах команды
Если есть вопросы, пожелания или что-то ещё(поблагодарить и т.д.), пишем в Комментарии ниже!
Автор: AdminLSИсточник: http://linuxsql.ruwww.linuxsql.ru
cat Ubuntu Linux
Как прочитать содержимое текстового файла, расположенного на рабочем столе, с помощью терминала?
Моя цель – открыть и прочитать содержимое файла, который находится на моем рабочем столе, используя только терминал для этого. У моего файла есть пробел («») в его названии, это стало неприятным, потому что, кажется, кошка пытается прочитать 2 разных файла из-за пространства.
Одна команда для функций ls и cat?
Хорошо, ребята, это экспериментальный вопрос! Я часто путаю cat и ls когда быстро работает на консоли. Не потому, что я забыл их смысл, нет. Просто потому, что я печатаю, не задумываясь над командой, она просто приходит автоматически. Я уверен, что все знают, что я пытаюсь объяснить: вам не нужно думать, что вводить, если ваша задача […]
как я могу перечислить файлы в порядке
У меня был 18-гигабайтный файл, который мне нужно скачать на более чем отличном интернет-соединении. Torrenting не был вариантом. Таким образом, я разбил файл на 100 сегментов и, в конечном итоге, все это загрузилось. Теперь мне нужно собрать файлы вместе, используя программу, похожую на кошку. Поэтому мне нужно перечислить файлы в порядке подсчета и объединить их. […]
cat: записать ошибку: сломанная труба
У меня есть команда: cat urls.txt | xargs -L 1 -P 5 timeout 40 wget Это загружает все URL-адреса в urls.txt Это работало отлично, но недавно я изменил URL-адреса, которые загружаю из чего-то вроде: domain.com/54f-5g4/, к чему-то вроде domain.com/this-that/ И по какой-то причине я сейчас получаю: cat: write error: Broken pipe Я посмотрел на исполняемые […]
`wc -c` дает ожидаемые результаты?
У меня есть .log-файл, который является двоичным файлом (BSC0000.log). Поэтому просмотрел его в средстве просмотра HEX (OKteta) и экспортировал его непосредственно в строку (split_space.txt). С пробелами в середине, как 00 DF 00 45 . Дело в том, что когда я пересчитывал символы в обоих файлах, это имело огромную разницу. laksith@laksithPC:~/Desktop/test$ cat split_space.txt | wc -c […]
Нумерация абзацев с помощью команды «cat»
В настоящее время я пытаюсь найти способ использовать команду cat для отображения текстового файла как автоматически пронумерованных абзацев для проекта, который я делаю, но я не смог найти одну команду. Пример: Frederick II (German: Friedrich; 24 January 1712 – 17 August 1786) was King of Prussia from 1740 until 1786.[1] His most significant accomplishments during […]
пропустить имена файлов в grep
Я собираю строку из нескольких файлов, но единственным нежелательным побочным эффектом является имя файла, предваряющее выход. Как я могу подавить выходы имени файла, используя только grep? $ grep -i lp lpNet* lpNet:This was printed via the internet using the lp command. lpNet:I believe lp doesnt care what the device is. lpNet1:This was printed via the […]
cat, показывающий содержимое файла, но коврик для мыши и abiword не будут
Как говорится в этом вопросе, мне нужно отредактировать файл my /proc/acpi/wakeup , но когда я его открываю с помощью любого текстового редактора, он показывает пустой файл. cat , с другой стороны, отображает правильное содержимое файла в терминале. Когда я перехожу к этому файлу в файловом менеджере, он говорит, что его размер равен 0 байтам. Я […]
Что случилось с моей командой кошки?
Я одолжил другу компьютер с Ubuntu 12.04 LTS на нем, и он перепутал команду cat . $ cat testfile.txt cat: meow! $ Может кто-нибудь сказать мне, как это исправить? пожалуйста? Выход which cat : /bin/cat
GZip образа диска, созданного с помощью команды `dd`
Я создал вчера образ диска с помощью GZip. Я открыл файл 51.3 GiB с именем ssd.img.gz, чтобы увидеть один значок, который представляет собой пакет из 3.9 GiB, да, то есть размер этой девяти гигабайт и имеет имя изображения как ssd.img Мне это не кажется правильным, работает ли образ или нет? Да, на дисках есть данные […]
ubuntu.fliplinux.com