有一个名为RESULTS.txt的文件,我想在终端中打开此文件。 (我的意思是我希望看到文件内容显示在终端中,而不是某些文本编辑器中)

我该怎么做?

评论

这是一个有趣的问题,可以显示人们的喜好,从简单的猫到sed,再到nano到vim,

@Sparksis当我搜索“在终端中打开文本文件”时,我从Mac论坛上得到了诸如pico之类的东西的结果,这些东西不在ubuntu中。这种问题在这里非常受欢迎。

好吧,或多或少都适用。

您可能需要研究一些初学者的Ubuntu Shell教程-它们将说明如何执行此操作及相关内容。

@Sparksis是的,它把我送到了这里:)

#1 楼

对于短文件:

cat <path/your_file>


直接在终端中显示文本文件。

对于长文件:

less <path/your_file>


在文件中滚动和搜索(/ text to search Enter);按q退出。

例如

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


评论


在输入cat /home/suhail/RESULT.txt之类的命令后,我得到了这只猫:/home/suhail/RESULT.txt:没有这样的文件或目录

– Suhail Gupta
13年2月27日在13:45

当您执行“ ls”时。结果是什么呢?

– Thomas15v
13年2月27日在13:46

如果与文件位于同一文件夹中,则无需执行完整路径。你可以只做RESULT.txt

– Shauna
13年2月27日在14:31

@SuhailGupta:可能有多个suhail目录。 / home / suhail通常是您的主目录。 pwd打印什么?另外,制表符补全也很方便。如果键入cat R ,并且当前目录中只有一个文件的名称以R开头,则它将扩展为该文件的名称。

–基思·汤普森(Keith Thompson)
13年2月28日在1:53

顺便说一句-在Windows上,命令为

– mowwwalker
2013年3月2日在8:29

#2 楼

另一个选择是vim

vim RESULTS.txt


例如,一旦使用vim打开文件,就可以通过键入i插入文本。如果要保存文件,请使用:w(写)或:q(退出)或:wq(写和退出)或:q!(退出但不保存)。有时您需要按ESC键才能键入命令。

Vim需要学习一些知识,但用途广泛,用途广泛。

检查社区帮助Wiki:https://help.ubuntu.com/community/VimHowto


Vim是一种高级文本编辑器,提供了事实上的功能
Unix编辑器' Vi'具有更完整的功能集。 Vim通常被称为“程序员的编辑器”,对编程非常有用,以至于许多
都将其视为整个IDE。但是,这不仅适用于程序员。 Vim
非常适合各种文本编辑,从撰写电子邮件到
编辑配置文件。


评论


更好的选择是view,它在Ubuntu上以只读模式启动Vim。而且由于OP要求查看并且明确地不进行编辑... -1 ...当然,如果修改后,我将撤回下降表决。

– 0xC0000022L
13年2月27日在12:57



@ 0xC0000022L :)您可以保留否决票。如果需要,可以随时在视图上添加答案。 Vim非常有能力显示文件,因此可以回答这个问题。

– don.joey
13年2月27日在13:07



我首先赞成你的评论。我都可以。但是自从您提到Vim以来,视图实际上就适合您的答案,而不是单独的答案。我仍然认为并且在某些文本编辑器中不是很清楚;)

– 0xC0000022L
13年2月27日在17:09

view是vim -R的愚蠢的四个字母的别名。如果您不使用任何保存命令,如ZZ,:w或:x,则没有区别。您也可以将文件重定向到vim以将其用作阅读器: vim-。通常这总比没有好,唯一的缺点是vim在显示任何内容之前先将整个输出封住。

–卡兹
13年2月27日在18:36

@ 0xC0000022L:对于刚开始使用命令行的人来说,“在终端中而不是在某些文本编辑器中”很容易意味着“在终端中的某些实用程序中,而不是在单独的窗口中打开的某些文本编辑器中”。当我第一次进入命令行时,我很习惯用窗口识别应用程序,我当然认为vim,nano等是终端的一部分,而不是相当长一段时间以来作为单独的应用程序。

– PLL
13年2月27日在22:43

#3 楼

所有这些都是最好的方法,还有另一种方法可以使用head命令。

head -n -1 filename.txt




head -n -0 filename.txt


都会给您相同的输入。

Head命令说明:

通常,head命令用于打印任何文本文件的起始行。我们可以使用

head filename.txt
查看文本文件

将打印上述文本文件的前10行。

如果要在要查看的行数,则可以使用head作为

head -n 20 filename.txt


然后在上面的文本文件中将查看前20行。

如果您想用head方式查看整个文件数据,那么我们可以通过

head -n -0 filename.txt


得到它,希望上面的解释可以让您对使用head有所了解。

评论


你能解释一下head命令吗?是头软件吗? -n和-0代表什么?

– don.joey
13年2月27日在12:51

@Private我的朋友,很高兴。

–rɑːdʒɑ
13年2月27日在12:53

这只是写猫的一种非常糟糕的方法。如果这就是这个意思,那还有比这更多的一种方法……

– Ry-
13年2月28日在1:47



head -n -0 filename.txt等同于cat filename.txt

–基思·汤普森(Keith Thompson)
13年2月28日在1:50

@Jai:这是另一种不必要的猫写方法。

– Ry-
13年2月28日在2:50

#4 楼

如果文件比较长,则可能要使用

less RESULTS.txt


,以便可以使用方向键在文件中导航。

评论


旁注:少即是多的继任者。就可执行文件的大小而言,少即是多。

– Joachim Sauer
13年2月27日在12:56

@Joachim Sauer:同样,在功能方面,只要您想做的不仅仅是查看;)

– 0xC0000022L
13年2月27日在13:01

@ 0xC0000022L:如果要查看,请不要忘记查看! (在只读模式下为vi。

–艾伦·舒特科(Alan Shutko)
13年2月27日在17:24

我用了不到二十年前,而不必担心它的大小。

–卡兹
13年2月27日在18:28

正如他们所说,“少即是多”

–aidan
13年2月27日在21:58

#5 楼

另一种选择是:

tail -n 30 result.txt


打印出名为result.txt的大文件的最后30行。

#6 楼

另一种选择:

tail -f your_file


它将显示your_file的最后十行。如果某个进程将某些内容附加到此文件,则可以在终端上看到它。 man tail提供了有关tail的更多信息。

查看在日志文件上使用此命令时服务器发生的情况非常有用。

在您按下Ctrl-C退出时查看完毕。

#7 楼

有很多替代方法:

其中一些程序具有很多参数,因此请在命令后使用--help进行确认。.



cat filename一次打印整个文件

more / less filename类似的行为,用于部分查看文件

tail filename从文件的尾部开始读取

grep text filename用于过滤结果

希望其中一些对您有用..

#8 楼

使用终端文本编辑器:nano /path/to/file/RESULTS.txt

评论


“不在某些文本编辑器中”

– Burhan Ali
13年2月28日在8:08

#9 楼

由于我们似乎列出了在终端中显示任何文本文件的所有可用方法,因此将pv引入技术上是一种有效(但不常见)的方法,这很有趣,尽管我通常会在大多数情况下使用cat

它在存储库中,因此如果尚未安装,可以与sudo apt-get install pv一起安装。

如手册页所述,pv通常用于


通过管道监视数据的进度... pv会将每个提供的FILE依次复制到标准输出(-表示标准输入),或者如果未指定任何文件,则仅输入标准输入复制。这与cat(1)的行为相同。



使用pv,您可以从字面上将文件打印到屏幕上,然后选择文件出现的速率(-L)。下面的示例使用较高的速率(300),但是如果您选择较低的速率,例如-L 50,它将看起来好像计算机正在为您键入文件。

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


不用说,您可以进一步提高速率(-L 8000),并且该命令与cat非常相似,输出会立即显示。

有关更多信息,请参见man pv或在线Ubuntu手册页。

#10 楼

这里已经提供了很多不错的选择,但是如果需要编辑的另一个选择是emacs:

emacs -nw RESULTS.txt


可能不需要-nw,具体取决于。您可能还需要apt-get install emacs23apt-get install emacs24,或者如果您没有X或不想要相关的X依赖项,则是apt-get install emacs23-noxapt-get install emacs24-nox。除了上面提到的catless之外,还有是more。多一点少了,因为您一次看到一个页面并且无法通过命令本身滚动,但是如果您具有滚动的终端窗口,则可以在终端窗口中滚动:

more RESULTS.txt


如果您参加bash活动,则可以通过执行以下操作来获得与cat类似的功能:

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


#11 楼

外壳程序sed还具有打印文件内容的选项。

sed -n p RESULTS.txt


所以sed遍历每行并将其打印到终端。但是sed也具有编辑功能。例如,如果要用点替换每个逗号,可以编写:

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


评论


我一直在寻找的机器人。谢谢。在Mac上,将文件从终端复制到剪贴板。 sed -n p RESULTS.txt | pbcopy

– 9ete
15/12/29在18:11

#12 楼

如果只想读取文件内容,请进入文件目录,然后输入

less RESULTS.txt


如果要读取和编辑文本文件,请使用相同的目录类型

nano RESULTS.txt


可以在文件名之前插入nano命令中的-w开关,以防止长行换行。

评论


至少一段时间以来,至少在Ubuntu中,写模式已成为nano的默认设置。现在,您必须明确告诉它使用只读模式。

– Shauna
13年2月27日在14:33

我想这里是不同的星球(或纳米版本)。但是-w是--nowrap的缩写...与写无关,

– 0xC0000022L
13年2月27日在14:34

#13 楼

为什么不呢?

还可以使用

most RESULTS.txt


它与less几乎相同,但是如果文件包含长文件,它还支持水平滚动行-这真的很方便。

默认情况下未安装most,因此要使用它,必须首先

sudo apt install most


#14 楼

如果您需要编辑文件的内容,我通常使用nano。

nano filename


#15 楼

或只是


vi YourFile


使用hjkl按钮向左/向下/上/右移动行,然后按Esc然后:q退出

,您也可以PageUp / PageDown

,也可以在此处进行直接编辑

,在这里您可以找到更多链接

评论


当我6岁的时候(1991年),当我设法以vi结束并且无法退出时,我常常不得不跑到父亲身边救我。

– Gerrit
2013年2月27日在22:01



是的...我还是这样做

– 4pie0
13年2月27日在22:31

当我总是通过vi打开某些东西时,我喜欢这种小情绪:“会有一个幸福的结局,还是我会完成交换文件...”

– 4pie0
13年2月28日在1:12

#16 楼

另一个更奇特的答案是使用grep:qbr120qq命令grep命令搜索文件中的每个字符并将其打印出来。因此基本上可以打印出完整的文件。

评论


为什么?只是...为什么?

– Gerrit
13年2月27日在22:00

这只是另一种可能性。通常,您将使用grep提取文件的一部分。

– qbi
13年2月27日在22:05

猫文件|猫|猫|猫也是可能的。或粘贴fubar。或tac fubar | TAC。可能性是无限的,所以我认为尝试将它们全部列出是毫无意义的。

– Gerrit
13年2月27日在22:06



实际上,这可能很有用,因为它不只是打印整个文件。它将跳过空行。 (仅包含空格的行仍将被打印。)

–基思·汤普森(Keith Thompson)
13年2月28日在1:51

我喜欢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测试.txt'http:// \ [:: 1 \]:2620 /'。

– Ry-
13年2月28日在1:57