Как открыть текстовый файл в моем терминале?


152

Есть файл с именем, RESULTS.txtи я хочу открыть этот файл в моем терминале. (Я имею в виду, я хочу, чтобы содержимое файла отображалось в терминале, а не в каком-то текстовом редакторе)

Как мне это сделать ?


17
Я вижу 9 голосов, но на самом деле это просто. Вы даже пытались найти ответ в Интернете?
Колтон

5
Это интересный вопрос , который показывает предпочтения людей, от простых catдо sedдо nanoдоvim
Alvas

12
@Sparksis Когда я ищу «открыть текстовый файл в терминале», я получаю результаты на форумах Mac для таких вещей, как пико и т. Д., Которых нет в Ubuntu. Этот вопрос очень приветствуется здесь.
Хорхе Кастро

1
Возможно, вы захотите взглянуть на некоторые учебные пособия по оболочке Ubuntu для новичков - они объяснят, как это сделать, и связанные с ними вещи.
l0b0

5
@Sparksis Да, это послало меня сюда :)
johnc

Ответы:


183

Для коротких файлов:

cat <path/your_file>

напрямую показывает текстовый файл в терминале.

Для более длинных файлов:

less <path/your_file>

позволяет вам прокручивать и искать ( / text to search Enter) в файле; нажмите qдля выхода.

например

cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt

1
при вводе команды, как cat /home/suhail/RESULT.txtя получил этоcat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta

Когда вы делаете «лс». Каков результат, чем?
Thomas15v

4
Если вы находитесь в той же папке, что и файл, вам не нужно указывать полный путь. Вы можете просто сделатьcat RESULT.txt
Shauna

1
@SuhailGupta: там может быть несколько suhailкаталогов. /home/suhailобычно это ваш домашний каталог. Что pwdпечатает? Кроме того, заполнение вкладок может быть очень удобным; если вы наберете cat R<tab>, и в текущем каталоге будет только один файл, имя которого начинается с R, он будет расширен до имени этого файла.
Кит Томпсон

1
ПО ПУТИ - На окнах, командаtype
mowwwalker

33

Еще одна альтернатива vim.

vim RESULTS.txt

После того, как вы открыли файл с помощью vim, вы можете вставить текст i, например, набрав . Если вы хотите сохранить свой файл, используйте :w(запись) или :q(выход) или :wq(для записи и выхода) или :q!(выход и не сохранять). Иногда вам нужно нажать ESCклавишу, чтобы иметь возможность набирать команды.

Vim требует некоторого изучения, но широко используется и очень универсален.

Проверьте справку сообщества вики: https://help.ubuntu.com/community/VimHowto

Vim - это расширенный текстовый редактор, который предоставляет де-факто Unix-редактору Vi более полный набор функций. Vim часто называют «редактором программиста» и настолько полезен для программирования, что многие считают его целой IDE. Хотя это не только для программистов. Vim идеально подходит для всех видов редактирования текста, от написания электронной почты до редактирования файлов конфигурации.


4
Еще лучшая альтернатива - viewзапуск Vim в режиме только для чтения в Ubuntu. А так как ОП попросили просмотреть и явно не редактировать ... -1 ... конечно, я откажусь от понижения в случае, если это будет отредактировано.
0xC0000022L

8
@ 0xC0000022L :) Вы можете оставить отрицательный голос. Не стесняйтесь добавлять ответ, viewесли хотите. Vimвполне способен показывать файлы, и, таким образом, это отвечает на вопрос.
don.joey

2
Я сначала проголосовал за ваш комментарий . Я согласен. Но так как вы упомянули Vim, viewбуквально вписался бы в ваш ответ вместо отдельного. Я до сих пор думаю, что и не в каком-то текстовом редакторе это довольно понятно;)
0xC0000022L

view - это тупой четырехбуквенный псевдоним для vim -R. Если вы не используете команду сохранения, например ZZ, :wили :x, нет никакой разницы. Кроме того, вы можете перенаправить файлы , vimчтобы использовать его в качестве читателя: command | vim -. Обычно это лучше, чем lessединственный недостаток, vimзаключающийся в том, что весь вывод выводится перед отображением чего-либо.
Каз

1
@ 0xC0000022L: для кого-то довольно новичка в использовании командной строки «в терминале, а не в каком-либо текстовом редакторе» может легко означать «в некоторой утилите в терминале, а не в каком-либо текстовом редакторе, который открывается в отдельном окне». Когда я впервые приехал в командной строке, я так привык к идентификации приложений с их окон , что я , конечно , думал о vim, nanoи т.д. , как часть терминала , а не в виде отдельных приложений , довольно долгое время.
PLL

16

Все это лучшие способы, и есть еще один способ сделать это, и это с headкомандой.

head -n -1 filename.txt

а также

head -n -0 filename.txt

оба будут давать вам одинаковые данные.

Руководитель команды Объяснение:

Обычно команда head используется для печати начальных строк любого текстового файла. Мы можем просмотреть текстовый файл с

head filename.txt

Это напечатает первые 10 строк вышеуказанного текстового файла.

Если вы хотите указать количество строк, которые должны быть просмотрены, вы можете использовать head как

head -n 20 filename.txt

Затем в вышеуказанном текстовом файле будут просмотрены первые 20 строк.

Если вы хотите просмотреть данные всего файла средствами head, то мы можем получить их

head -n -0 filename.txt

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


1
Вы можете объяснить headкоманду? такое headпрограммное обеспечение? что обозначают -n и -0?
don.joey

1
@ Личный друг, с удовольствием.
rɑːdʒɑ

3
Это просто очень плохой способ написать cat. Если это то, чем это должно быть, то есть гораздо больше, чем этот еще один способ сделать это…
Ry-

1
head -n -0 filename.txtэквивалентноcat filename.txt
Кит Томпсон

2
@Jai: Это еще один излишне сложный способ написания cat.
Ry-

13

Если файл довольно длинный, вы можете использовать

less RESULTS.txt

так что вы можете перемещаться по нему с помощью клавиш со стрелками.


3
Sidenote: lessявляется преемником more. И с точки зрения исполняемого размера lessбольше, чем more.
Йоахим Зауэр

@Joachim Sauer: также с точки зрения возможностей, когда вы хотите сделать больше, чем просто посмотреть;)
0xC0000022L

@ 0xC0000022L: Если вы хотите посмотреть, не забудьте view! (Который vi в режиме только для чтения ....)
Алан Шутко

1
Я использовал lessдвадцать лет назад, не беспокоясь о его размерах относительно more.
Каз

2
« lessесть more», как говорится
aidan

12

Другой вариант:

tail -n 30 result.txt

распечатать последние 30 строк большого файла с именем result.txt.


8

Другой вариант:

tail -f your_file

Он покажет вам последние десять строк your_file. Если процесс добавляет что-то к этому файлу, вы видите это на своем терминале. man tailдает вам больше на tail.

Полезно посмотреть, что происходит с сервером, когда вы используете эту команду в файле журнала.

Нажмите Ctrl-, Cчтобы выйти, когда вы закончите просмотр.


4

Есть много альтернатив для этого:

Некоторые из этих программ имеют много параметров, поэтому проверьте это с помощью --help после команды.

  • cat filename печатает весь файл сразу
  • more/ less filenameаналогичное поведение для просмотра файла по частям
  • tail filename начать чтение с конца файла
  • grep text filename для фильтрации результатов

Надеюсь, что это поможет вам ..



2

Здесь уже есть много хороших опций, но другой вариант, если вам нужно отредактировать, это emacs:

emacs -nw RESULTS.txt

может не понадобиться -nw, в зависимости. Вам также может понадобиться apt-get install emacs23или apt-get install emacs24, или, если у вас нет X или вы не хотите связанных с X зависимостей, apt-get install emacs23-noxили apt-get install emacs24-nox.

И в дополнение к catи lessкак уже упоминалось в другом месте, есть more. Больше - меньше, потому что вы видите страницу за раз и не можете прокручивать саму команду, но вы можете прокручивать окно терминала, если у вас есть окно терминала прокрутки:

more RESULTS.txt

Если вы в bash, у вас есть что-то похожее cat, выполнив:

while IFS= read a;do echo "$a";done<RESULTS.txt

2

Если вы просто хотите прочитать содержимое файла, перейдите в каталог file и введите

less RESULTS.txt

Если вы хотите читать и редактировать текстовый файл, из того же типа каталога

nano RESULTS.txt

-wПереключатель в команде нано можно вставить перед именем файла , чтобы предотвратить перенос длинных строк.


1
Режим записи был установлен по умолчанию для nano уже довольно давно, по крайней мере, в Ubuntu. Теперь вы должны явно указать ему использовать режим только для чтения.
Шона

4
Другая планета (или nanoверсия) здесь, я полагаю. Но -wэто сокращение от --nowrap... и не имеет ничего общего с записью,
0xC0000022L


1

или просто

vi YourFile

используйте кнопки hjkl для перемещения строки влево / вниз / вверх / вправо, нажмите Esc, затем: q, чтобы выйти

и вы можете PageUp / PageDown

Вы также можете редактировать его здесь прямо

здесь вы найдете больше ссылку


1
Когда мне было 6 лет (в 1991 году), мне часто приходилось бежать к отцу, чтобы спасти меня, когда я каким-то образом оказался в vi и не смог выбраться.
Gerrit

1
да ... я все еще делаю это
4pie0

Мне нравятся эти маленькие эмоции, когда я всегда что-то открываю через vi: «будет ли счастливый конец или я снова
закончу

1

Программа оболочки sedтакже имеет возможность распечатать содержимое файла.

sed -n p RESULTS.txt

Так sedпроходит по каждой строке и выводит ее на терминал. Но sedтакже имеет возможности редактирования. Например, если вы хотите заменить каждую запятую точкой, вы можете написать:

sed 's/,/./g' RESULTS.txt

Дроидов, которых я искал. Благодарю. На Mac скопировать файл из терминала в буфер обмена. sed -np RESULTS.txt | pbcopy
hawkeye126

1

Поскольку мы, кажется, перечисляем все доступные варианты отображения любого текстового файла в терминале, было бы довольно забавно представить pvкак технически один действительный (но необычный) метод, хотя я обычно использовал бы catвместо этого для большинства вещей.

Он находится в репозиториях и может быть установлен, sudo apt-get install pvесли у вас его еще нет.

Как отмечает страница руководства , pvочень часто используется для

контролировать ход данных через канал ... pv будет копировать каждый предоставленный ФАЙЛ по очереди в стандартный вывод (- означает стандартный ввод), или если ФАЙЛЫ не указаны, просто копируется стандартный ввод. Это то же самое поведение, что и у cat (1).

С pvего помощью можно буквально распечатать файл на экране и выбрать скорость ( -L), с которой он появляется. В приведенном ниже примере используется высокая скорость (300), но если вы выберете низкую скорость, например -L 50, она будет выглядеть так, как будто компьютер печатает файл для вас.

pv /etc/apt/sources.list -qL 300

Само собой разумеется, что вы можете еще больше увеличить скорость ( -L 8000), и команда становится очень похожей cat, с выводом, появляющимся мгновенно.

Для получения дополнительной информации смотрите man pvили справочные страницы Ubuntu онлайн .


0

Еще один более экзотический ответ заключается в использовании grep:

grep . RESULTS.txt

Команда grepищет каждый символ в файле и печатает его. Таким образом, в основном весь файл распечатан.


6
Почему? Просто ... почему ?
Gerrit

Это просто еще одна возможность. Обычно вы будете использовать grepдля извлечения части файла.
QBi

2
cat file | cat | cat | catтакже возможно. Или paste fubar. Или tac fubar | tac. Возможности безграничны, поэтому я думаю, что пытаться перечислить их все довольно бессмысленно.
Gerrit

2
Это может быть полезно, потому что он не просто печатает весь файл. Это пропустит пустые строки. (Линии, состоящие только из пробелов, будут по-прежнему напечатаны.)
Кит Томпсон

5
Мне нравится echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/', лично.
Ry-

0

Почему нет.

Вы также можете использовать

most RESULTS.txt

Это почти то же самое less, но также поддерживает горизонтальную прокрутку, если файл содержит длинные строки - что действительно удобно.

most не устанавливается по умолчанию, поэтому для его использования необходимо сначала

sudo apt install most
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.