我想在命令行上显示文本文件的内容。该文件仅包含5-6个字符。有简单的方法可以做到吗?

#1 楼

使用cat


由于文件简短,因此可以使用
cat

cat filename


使用less


如果必须查看较长文件的内容,则可以使用诸如
less的寻呼机。

less filename


在小文件上调用时,可以使less表现得与cat相似,并且通常可以通过传递-F-X标志来使其表现正常。

less -FX filename


less -FX的别名。您可以这样创建自己:

alias aliasname='less -FX'


如果将别名添加到shell配置中,则可以永久使用它。
br />
使用od


如果文件包含奇怪或不可打印的字符,则可以使用
od检查字符。例如,

$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233   ( 320   K   j 357 024   J 017   h   Z   4 240   ?   o
0000020   = 367  \n
0000023


评论


+1,也可以使用sed -n l文件。

– Enzotib
13年8月11日在6:42

与pg之类的其他寻呼程序相比,少有什么明显的优势吗?还是只是归结为个人喜好?

–山姆·温伯格
13年8月11日在19:22



@SamWeinberg:比pg具有更少的功能。看一下less(1)和pg(1)联机帮助页。也有其他传呼机。看看unix.stackexchange.com/questions/81129/…。 less可能是使用最广泛的传呼机,但您使用哪一个取决于个人喜好。

–user26112
2013年8月11日19:33



不要忘记更多和更多!

–旧帐户
2015年11月2日在17:16

#2 楼

即使每个人都使用cat filename将文件文本打印到标准输出,也是第一个目的。
从cat的手册页:


cat-连接文件并在标准输出上打印


现在cat适用于打印文件,但还有其他选择:
  echo "$(<filename)"
or
  printf "%s" "$(<filename)"


( )返回表达式的值,在这种情况下,文件名的内容随后由$扩展为echoprintf

更新:

< filename


这正是您所做的

下面是一个示例,可以让您在菜单中选择一个文件然后进行打印。

#!/bin/bash

select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
  printf "%s" "$(<$fname)"
  break
done


进一步阅读:Bash陷阱-cat文件| sed s / foo / bar /> fileBash参考-重定向

评论


您的更新:“ <文件名正是您想要的,...”具有误导性。总体而言,尽管这是关于替代方案的有趣讨论,但我认为cat更简单。

– X X Tian
2015年9月29日在20:21

Bare
– jarno
17年6月21日在19:57

您也可以使用tee
– jarno
17年6月21日在20:42

为回声“ $(<文件名)” bashism +1。这里还不够。

–妖怪
18年1月11日在8:13



这是将Linux Internal Command与echo“ $(
– Reza Harasani
18-09-25在5:52



#3 楼

在Unix上处理文本文件的工具是基本的日常命令:

在unix和linux中用于打印文件中的全部内容

cat filename.txt




more filename.txt




less filename.txt


最后几行

tail filename.txt


前几行

head filename.txt


#4 楼

您可以使用以下命令显示文本文件的内容。

cat filename 


评论


有关cat的更多信息,请运行man cat。

–user26112
13年8月11日,下午3:58

#5 楼

一种选择是使用more

,例如more file.txt

但是它没有less所添加的所有功能。
一个简单的示例是您无法在输出中向上滚动。通常,它已被less取代-之所以开玩笑,是因为


less就是more


评论


关于为什么名字少的很好的解释

–薄利多销
20年11月14日在5:00

#6 楼

我总是使用$ less "your file here",因为它非常简单,它提供了一个内置的交互式grep命令,并为您提供了易于使用的界面,您可以使用箭头键进行滚动。

(它也包含在几乎每个* nix系统)

评论


更少是更多功能的过度杀伤力版本(将更少的人与更多的人进行比较),对我而言,它具有两个烦人的功能:1)切换到备用屏幕缓冲区,当更少的终止时,您正在查看的文件消失2)在EOF,您必须显式键入q(我知道,有一个选项)。因此,在新环境中的第一个动作是在我的配置文件中设置export PAGER = / bin / more并一直使用。

– ott--
13年8月11日在15:57

@ ott--:1)试用-X标志。 2)试用-E标志。 less具有更多的仿真模式。您可以通过设置LESS_IS_MORE环境变量来启用它。您可以在更多仿真模式下向上滚动。

–user26112
13年8月11日在17:35



另请参阅:unix.stackexchange.com/questions/81129/…

–user26112
13年8月11日在17:36

虽然总的来说,我确实同意减少复杂性。它运行外部命令的能力是其过于复杂的完美示例。

–user26112
2013年8月11日19:00

@EvanTeitelman我一直发现grep功能对我自己非常有用,@ ott--我发现由于它是对更多功能的仿真,并且它具有许多其他功能,因此可以很好地完成工作。

– SG60
13年8月14日在14:04

#7 楼

如果文件很大,并且您要搜索某些特定部分,则可以使用

 cat filename | grep text_to_search -ni 


,也可以使用更多的交互式Vim编辑器(如果需要,可以使用vi编辑器)没有Vim):

 vim filename
Or
 vi filename


Vim / vi是一个很棒的编辑器,在“ Normal Mode”(普通模式)或-R选项下也可以用作阅读器,它具有许多功能将帮助您浏览文件。

评论


vim -R的简称是view。但请记住,它不喜欢重定向,如xargs和vi中所讨论的-“输入不是来自终端”。

–manatwork
13年8月12日在11:26

感谢@manatwork的注意!我最近开始使用Vim,由于它的几个功能,我喜欢它。关于重定向,我忘记了这一点,谢谢提醒。到目前为止,我正在一个远程VM上工作,在这里我使用不带GUI界面的ssh,因此,Vim很有用,当任何其他GUI编辑器无法工作时,这就是我在这里强调Vim的原因。

–不要担心孩子
13年8月12日在11:48

#8 楼

使用cat命令显示文件名的内容。
cat filename

使用vim命令编辑文件。
vim filename