Команда cat в linux

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную — пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом «с», удалнные — «d», а новые — «а».

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Example — Using cat to pipe the contents of a file into another command

In this example we will use the cat command, the pipe operator and the grep command to send the contents of a file to the standard input of the grep command.

For this example the file named file1 contains the text: Learning cat with TechOnTheNet is fun! and the file named file2 contains the text: Concatenating two files into one is even more fun.

The following cat command pipes or sends the contents of the files file1 and file2 to the standard input of the grep command.

cat file1 file2 | grep "TechOnTheNet"

In this screenshot we can see that the contents of both file1 and file2 are sent into the grep command. The grep command filters the output displaying any lines that contain the string TechOnTheNet.

The line Learning cat with TechOnTheNet is fun! from the file named file1 contains the string TechOnTheNet so it is displayed by the grep command.

Примеры использования head

Самый простой способ использования команды head — с указанием имени файла, но без опций. В таком случае будут выведены на экран первые 10 строк.

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

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

Чтобы название файла выводилось даже в том случае, когда команде задан только один документ, следует воспользоваться опцией -v:

Если десяти строк, по умолчанию выводимых командой, окажется слишком мало или слишком много, ничто не мешает изменить их количество вручную. Для этой цели служит опция -n:

Не будем забывать об еще одном интересном свойстве этой опции. Она позволяет вывести то количество строк, которое останется после «отсечения» лишнего текста. Для этого нужно использовать не сокращенную (однобуквенную), а полную запись опции:

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

Следует заметить, что строки «отсекаются», начиная с последней.

До этого момента мы (и команда head вместе с нами) считали количество текста построчно. Но это не обязательное условие — с таким же успехом единицей измерения может быть байт. Достаточно сообщить команде о новом правиле работы с помощью опции -с, заодно указав и количество байт, которое нужно вывести на экран (NUM):

Как и в случае с опцией —lines, можно «отсечь» ненужный объем текста, используя полную форму опции -с — —bytes. Запись команды проводится по тому же принципу и лишние байты тоже отсчитываются, начиная с конца документа:

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

  • b — умножает число на 512.
  • kB — на 1000.
  • k — на 1024.
  • MB — на 1 000 000.
  • M — на 1 048 576.

Кстати, команду head можно использовать не только самостоятельно, но и в сочетании с другими командами. Например, такая запись хеширует рандомно выбранную переменную среды, выводит первые 32 байта из указанного файла и отображает случайную строку из 24 символов:

На этом наши примеры head linux подошли к завершению.

How to Fix Problems Opening CAT Files

Conduct a Malware Scan of Your CAT File

When an antivirus program is installed on the computer, it is capable of scanning all files on the computer, as well as each file individually. Each file can be scanned by right-clicking the file and choosing the option to scan the file for viruses.

For example, in this picture, we’ve highlighted the my-file.cat file and right-clicked the file to see the ‘Scan with AVG’ option in the file menu. When this option is selected, AVG Antivirus opens and scans that file for any viruses.

my-file.cat

Reinstall Microsoft Windows

Occasionally you might experience a flawed software installation, which may be due to a problem encountered during the install process. This can prevent your operating system from associating your CAT file with the right software application, affecting what is known as «file extension associations».

Sometimes, simply reinstalling Microsoft Windows will solve your problem, properly associating your CAT with Microsoft Windows. Other times, poor software programming on behalf of the software developer can cause problems with file associations, and you may need to contact the developer for further assistance.

Tip: Try upgrading to the latest version of Microsoft Windows to ensure you have the latest patches and updates installed.

Obtain Another Copy of Your CAT File

Caution: A corrupt file could also be collateral damage of a previous or existing malware infection on your PC, that’s why it is essential that you keep an updated antivirus running on your computer at all times.

Update Your Microsoft Corporation-Related Hardware Device Drivers

If your CAT file is related to a piece of hardware on your computer, you might need to update your device drivers associated with that hardware in order to open it.

This problem is commonly related to multimedia file types that depend upon a piece of hardware inside of your computer to be successfully opened, such as a sound card or graphics card. For example, if you are trying to open an audio file, but failing to open it, you might need to update your sound card drivers.

Tip: If you are receiving an error message related to a .SYS file when attempting to open your CAT file, it’s likely your problem is related to corrupt or outdated device drivers that need to be updated. Using a driver update software such as DriverDoc can help make this process much easier to complete.

Close Other Applications Running

If all other steps fail, and you are still experiencing problems opening CAT files, it might be due to a lack of available system resources. Some versions of CAT files can require substantial resources (eg. Memory/RAM, processing power) to be properly opened by your computer. This is quite common if your computer hardware is older, and you are using a much newer operating system.

This issue can occur when your computer is having a hard time keeping up because the operating system (and other services running in the background) might be consuming too many resources for your CAT file to open. Try closing all applications on your PC before attempting to open your Windows Catalog File. Freeing up all of the available resources on your computer provides the best environment for attempting to open your CAT file.

Upgrade Your Computer Hardware

If you’ve tried all of the steps above, and your CAT file still won’t open, you might be due for a hardware upgrade. In most cases, even if you have older hardware, processing power is still more than adequate for most user’s applications (unless you do a lot of CPU resource-intensive work such as 3D rendering, financial / scientific modeling, or intensive multimedia work). Therefore, it’s likely that your computer is lacking the necessary amount of memory (more commonly referred to as «RAM», or random access memory) to complete the file opening task.

Try upgrading your memory to see if that helps you open your CAT file. These days, memory upgrades are quite affordable and very easy for even the casual computer user to install in their PC. As a bonus, you’ll probably see a nice performance bump in other tasks carried out on your computer.


Product by Solvusoft

Options

These options are available on GNU cat, which is standard on most Linux distributions. If you are using a different Unix-like operating system (BSD, for example), some of these options may not be available; check your specific documentation for details.

-A, —show-all

Equivalent to -vET.

-b, —number-nonblank

Number non-empty output lines. This option overrides -n.

-e

Equivalent to -vE.

-E, —show-ends

Display «$» at end of each line.

-n, —number

Number all output lines.

-s, —squeeze-blank

Suppress repeated empty output lines.

-t

Equivalent to -vT.

-T, —show-tabs

Display TAB characters as ^I.

-v, —show-nonprinting

Use ^ and M- notation, except for LFD and TAB.

—help

Display a help message, and exit.

—version

Output version information, and exit.

Usage

The Single Unix Specification defines the operation of to read files in the sequence given in its arguments, writing their contents to the standard output in the same sequence. The specification mandates the support of one option flag, u for unbuffered output, meaning that each byte is written after it has been read. Some operating systems, like the ones using GNU Core Utilities, do this by default and ignore the flag.

If one of the input filenames is specified as a single hyphen (), then reads from standard input at that point in the sequence. If no files are specified, reads from standard input only.

The command-syntax is:

cat  

Options

Example of some options:

  • -b (GNU: --number-nonblank), number non-blank output lines
  • -e implies -v but also display end-of-line characters as $ (GNU only: -E the same, but without implying -v)
  • -n (GNU: --number), number all output lines
  • -s (GNU: --squeeze-blank), squeeze multiple adjacent blank lines
  • -t implies -v, but also display tabs as ^I (GNU: -T the same, but without implying -v)
  • -u use unbuffered I/O for stdout. POSIX does not specify the behavior without this option.
  • -v (GNU: --show-nonprinting), displays nonprinting characters, except for tabs and the end of line character

tac

tac is a Linux command that allows viewing files line-by-line, beginning from the last line. (tac doesn’t reverse the contents of each individual line, only the order in which the lines are presented.) It is named by analogy with .

Usage:

Usage: tac ... ...
Write each FILE to standard output, last line first.
With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -b, --before             attach the separator before instead of after
  -r, --regex              interpret the separator as a regular expression
  -s, --separator=STRING   use STRING as the separator instead of newline
      --help     display this help and exit
      --version  output version information and exit

Редактор командной строки

Vi — текстовый редактор командной строки. Командная строка — это совершенно другая среда для вашего графического интерфейса. Это одно окно с вводом и выводом текста. Vi был спроектирован для работы с этими ограничениями и в результате он достаточно мощный. Vi предназначен для работы в качестве простого текстового редактора. Однако он обладает гораздо большей мощностью по сравнению с Notepad или Textedit.

В Vi есть два режима. Режим вставки и режим редактирования. В режиме ввода вы можете вводить содержимое в файл. В режиме редактирования вы можете перемещаться по файлу, выполняя следующие действия:

  • удаление
  • копирование
  • поиск
  • замена
  • сохранение
  • другие

Перечислим основные распространенные ошибки. Во-первых, начинать вводить команды, не возвращаясь в режим редактирования. Во — вторых, вводить ввод без предварительной вставки.

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

vi <файл>

Если вы забыли указать файл, есть способ открыть его в vi. Когда мы указываем файл, он может иметь абсолютный или относительный путь.

Пример

Отредактируем наш первый файл.

Когда вы запускаете эту команду, она открывает файл. Если файл не существует, он создаст его для вас, а затем откройте его. После ввода vi это будет выглядеть примерно так.

Вы всегда начинаете в режиме редактирования, поэтому первое, что мы собираемся сделать, это переключиться в режим вставки, нажав i

Теперь введите несколько строк текста и нажмите клавишу Esc, и вы вернетесь в режим редактирования.

Команда head в Linux

Синтаксис у команды head следующий:

$ head опции файл

Здесь:

  • Опции — это параметр, который позволяет настраивать работу команды таким образом, чтобы результат соответствовал конкретным потребностям пользователя.
  • Файл — это имя документа (или имена документов, если их несколько). Если это значение не задано либо вместо него стоит знак «-», команда будет брать данные из стандартного вывода.

Чаще всего к команде head применяются такие опции:

  • -c (—bytes) — позволяет задавать количество текста не в строках, а в байтах. При записи в виде —bytes=NUM выводит на экран все содержимое файла, кроме NUM байт, расположенных в конце документа.
  • -n (—lines) — показывает заданное количество строк вместо 10, которые выводятся по умолчанию. Если записать эту опцию в виде —lines=NUM, будет показан весь текст кроме последних NUM строк.
  • -q (—quiet, —silent) — выводит только текст, не добавляя к нему название файла.
  • -v (—verbose) — перед текстом выводит название файла.
  • -z (—zero-terminated) — символы перехода на новую строку заменяет символами завершения строк.

Переменная NUM, упомянутая выше — это любое число от 0 до бесконечности, задаваемое пользователем. Оно может быть обычным либо содержать в себе множитель.

7 ответов

348

Лучший ответ

Это называется heredoc, чтобы предоставить строку в stdin. Подробнее см. .

От :

23 март 2010, в 15:52
Поделиться

349

Синтаксис очень полезен при работе с многострочным текстом в Bash, например. при назначении многострочной строки переменной оболочки, файлу или каналу.

3. Передайте многострочную строку в канал в Bash

Файл содержит строки и . Тот же вывод печатается на .

04 фев. 2014, в 11:53
Поделиться

146

В вашем случае «EOF» известен как «Тег здесь». В основном говорится оболочке, что вы собираетесь вводить многострочную строку до «тега» . Вы можете назвать этот тег так, как хотите, часто или .

Некоторые правила тегов Here:

  1. Тег может быть любой строкой, в верхнем или нижнем регистре, хотя большинство людей используют по умолчанию верхний регистр.
  2. Тег не будет считаться тегом Here, если в этой строке есть другие слова. В этом случае это будет просто рассматриваться как часть строки. Тег должен быть сам по себе на отдельной строке, чтобы считаться тегом.
  3. Тег не должен иметь никаких ведущих или конечных пробелов в этой строке, чтобы считаться тегом. В противном случае он будет рассматриваться как часть строки.

пример:

22 авг. 2014, в 09:02
Поделиться

45

Без кавычек:

Вывод:

С кавычками:

или (уродливый, но действительный):

Выходы:

Hyphen удаляет ведущие вкладки

Без дефиса:

где является литеральной вкладкой и может быть вставлено с помощью

Вывод:

С дефис:

Вывод:

Это существует, конечно, так что вы можете отступать от как окружающий код, который легче читать и поддерживать. Например:

К сожалению, это не работает для пробелов: POSIX предпочитает отступ здесь. Хлоп.

09 июнь 2015, в 10:52
Поделиться

15

Использование tee вместо cat

Не совсем как ответ на исходный вопрос, но я все равно хотел бы поделиться этим: у меня возникла необходимость создать файл конфигурации в каталоге, который требует прав root.

В этом случае не работает следующее:

потому что перенаправление обрабатывается вне контекста sudo.

В итоге я использовал это:

13 фев. 2017, в 13:18
Поделиться

Стоит отметить, что здесь документы также работают в баш-петлях. В этом примере показано, как получить список столбцов таблицы:

или даже без новой линии

14 авг. 2018, в 17:09
Поделиться

Это не обязательно является ответом на исходный вопрос, но это результат некоторых результатов моего собственного тестирования. Эта:

будет выдавать тот же файл, что и:

Итак, я не вижу смысла использовать команду cat.

06 июнь 2018, в 02:01
Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *