Как в терминале посмотреть содержимое файла?
Вместо myfile нужно указать имя файла или путь до файла.
Если файл очень большой, то можно вывести только несколько последних строк файла. Для этого используется команда tail:
tail mybigfile
Также можно воспользоваться командой less:
less mygoodfile
Данная команда открывает файл в режиме просмотра — вы можете просматривать содержимое, нажимая клавиши Вверх/Вниз или Enter. Чтобы выйти из режима просмотра нажмите клавишу q.
Просмотр содержимого файлов в командной строке Linux
Рассмотрим несколько команд, которые используются для просмотра содержимого текстовых файлов в командной строке Linux.
Команда cat
Команда cat выводит содержимое файла, который передается ей в качестве аргумента.
cat myfile.txt
Это самый простой и наиболее часто используемый способ для вывода содержимого текстовых файлов. Но выводить большие файлы через cat не всегда удобно.
Команда nl
Команда nl действует аналогично команде cat , но выводит еще и номера строк в столбце слева.
nl mycode.cpp
Команду nl удобно применять для просмотра программного кода или поиска строк в файлах конфигурации.
Команда less
Утилита less выводит содержимое файла, но отображает его только в рамках текущего окна в режиме просмотра.
less myfile.txt
Вы можете прокручивать текст файла клавишами стрелок или перелистывать страницы клавишами w и z .
Для поиска текста внутри файла нажмите / .
Для просмотра списка доступных горячих клавиш нажмите h
Чтобы выйти из режима просмотра используется клавиша q .
Очень удобно, что после выхода окно терминала остается чистым и не содержит текст файла.
Команда more
Команда more очень похожа на команду less . Она также выводит файл в терминале в режиме просмотра, но имеет некоторые отличия от команды less.
Например, less в конце файла выводит сообщение (END) (или EOF — End Of File) и ожидает нажатия клавиши q чтобы закрыть режим просмотра, а more по достижении конца файла сразу возвращает управление в терминал.
Также more после своей работы оставляет текст файла в терминале, а less работает «чисто» и не сохраняет текст в терминале.
more myfile.txt
Команда head
Команда head выводит на экран только первые 10 строк файла.
head somefile.txt
Используя опцию -n можно задать количество строк, которое нужно вывести. Например, чтобы вывести 15 строк используется команда:
head -n15 somefile.txt
Вместо -n можно просто использовать знак минус — , за которым сразу указывается количество строк.
head -11 somefile.txt
Команда tail
Команда tail аналогична команде head , но выводит последние 10 строк файла.
tail somefile.txt
Заключение
Команды, которые мы рассмотрели, имеют дополнительные возможности и области применения. Для получения справки по каждой команде можно воспользоваться Man-страницами.
man cat man nl man less man more man head man tail
Как создать или вывести текстовый файл в командной строке Windows
Если вы оказались без доступа к чему-либо кроме командной строки или Windows PowerShell и по какой-то причине вам требуется возможность создания или чтения текстовых файлов, это вполне реализуемо, причем более чем одним методом.
Создание текстовых файлов в командной строке
Возможность создания текстовых файлов доступна как в командной строке (cmd.exe), так и в PowerShell. Начнем с первого варианта.
Во всех случаях учитывайте, что при использовании кириллицы потенциально возможны проблемы с кодировкой, а в некоторых случаях кодировка может отличаться при использовании разных команд.
Команда ECHO
Команда командной строки echo предназначена для вывода текстовых сообщений в окне консоли, например, при выполнении сценария в bat-файле, но может быть использована и для вывода текста в файл, благодаря возможности использования оператора «>» для перенаправления вывода из консоли в файл.
echo Содержимое текстового файла > file.txt
В результате её выполнения в текущей рабочей папке командной строки будет создан файл с именем file.txt и содержимым «Содержимое текстового файла».
COPY CON
Команда copy с параметром con позволяет скопировать содержимое консоли в файл. Использование возможности будет состоять из следующих шагов:
copy con имя_файла.txt
файл не будет создан, но после выполнения указанной команды у вас появится возможность набрать содержимое этого файла, которое по завершении процесса будет в него сохранено.
Создание текстового файла в PowerShell
PowerShell также имеет набор встроенных командлетов для сохранения текстовых данных в файл.
Out-File
Использование Out-File в PowerShell по своей функциональности сходно с оператором перенаправления вывода в командной строке. Вывод консоли перенаправляется в заданный файл.
"Текстовая строка" | Out-File -FilePath .\file.txt
В этом примере в текущей папке PowerShell будет создан файл с именем file.txt и содержимым «Текстовая строка».
New-Item
Создание нового текстового файла в PowerShell возможно с помощью командлета New-Item. Пример команды, в которой создается текстовый файл file.txt, содержащий «Текстовая строка» в текущем расположении:
New-Item -Path . -Name "file.txt" -ItemType "file" -Value "Текстовая строка"
Set-Content и Add-Content
Ещё два командлета PowerShell для работы с текстовыми файлами:
- Set-Content — перезаписывает содержимое файла
- Add-Content — добавляет содержимое в конце выбранного файла
Их использование можно увидеть на примере следующей команды:
Add-Content -Path .\file.txt -Value "Ещё одна текстовая строка"
Вывод (чтение) текстового файла в командной строке и PowerShell
Теперь перейдем к способам просмотреть текстовые файлы в командной строке или PowerShell. Как и в предыдущем случае, учитывайте, что для файлов, содержащих кириллицу, возможны проблемы с отображением символов в правильной кодировке.
TYPE
Самый простой вариант — использование команды TYPE с указанием пути к файлу, который нужно отобразить в консоли, например:
type file.txt
MORE
Если файл объемный и содержит большое количество строк, используйте команду more, например:
more file.txt
Выполнив команду, вы увидите часть содержимого текста, которая помещается в окне консоли, далее вы можете использовать следующие клавиши:
- Enter — для отображения следующей строки файла.
- Пробел — для отображения следующих строк документа, которые поместятся в активное окно консоли.
- P — Показать следующие N строк. После нажатия этой клавиши с последующим указанием количества строк, будет выведено соответствующее количество строк текстового документа.
- S — пропустить следующие N строк, работает аналогично предыдущему варианту.
- Клавиша «=» — для отображения текущего номера строки.
- Q — для прекращения выполнения команды more.
Get-Content
Вывести содержимое текстового файла в PowerShell можно с помощью Get-Content с указанием пути к файлу, например:
Get-Content file.txt
Также вы можете выводить определенные строки файла, с помощью команд вида (вывод первых или последних 10 строк соответственно):
Get-Content file.txt | Select-Object -First 10 Get-Content file.txt | Select-Object -Last 10
Или присвоить содержимое файла переменной и вывести конкретную строку:
$file_text = Get-Content file.txt $file_text[2]
type
В командной оболочке Windows введите встроенную команду, отображающую содержимое текстового файла. Используйте команду type для просмотра текстового файла, не изменяя его.
В PowerShell введите встроенный псевдоним командлета Get-Content, который также отображает содержимое файла, но с помощью другого синтаксиса.
Синтаксис
type [:][]
Параметры
Параметр | Описание |
---|---|
[:][] | Указывает расположение и имя файла или файлов, которые требуется просмотреть. Если содержит пробелы, его необходимо заключить в кавычки (например, «Имя файла, содержащее Spaces.txt»). Можно также добавить несколько имен файлов, добавив пробелы между ними. |
/? | Отображение справки в командной строке. |
Замечания
- При отображении двоичного файла или файла, созданного программой, на экране могут отображаться странные символы, включая символы формы и символы escape-последовательности. Эти символы представляют коды элементов управления, используемые в двоичном файле. Как правило, не используйте команду типа для отображения двоичных файлов.
Примеры
Чтобы отобразить содержимое файла с именем holiday.mar, введите:
type holiday.mar
Чтобы отобразить содержимое длинного файла с именем holiday.mar на одном экране за раз, введите следующее:
type holiday.mar | more