如何在命令行上显示文本文件的内容?

如何在命令行上显示文本文件的内容?

我想在命令行上显示文本文件的内容。该文件仅包含 5-6 个字符。是否有捷径可寻?

答案1

使用cat

由于您的文件很短,您可以使用 cat

cat filename

使用less

如果您必须查看较长文件的内容,可以使用分页器,例如 less

less filename

您可以通过向其传递和标志来使其less表现得像cat在小文件上调用时那样,否则表现正常。-F-X

less -FX filename

我有一个别名less -FX。你可以像这样自己做一个:

alias aliasname='less -FX'

如果您将别名添加到外壳配置,您可以永远使用它。

使用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

答案2

尽管每个人都使用cat filename将文件文本打印到标准输出,但第一个目的是令人兴奋。来自猫的手册页:

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

现在 cat 可以很好地打印文件,但还有其他选择:

  echo "$(<filename)"
or
  printf "%s" "$(<filename)"

返回( )表达式的值,在本例中为内容文件名$然后由forecho或展开printf

更新:

< 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

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

答案3

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

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

cat filename.txt

或者

more filename.txt

或者

less filename.txt

对于最后几行

tail filename.txt

对于前几行

head filename.txt

答案4

一种选择是使用more

例如more file.txt

然而它并不具备less.
一个简单的例子是您无法在输出中向后滚动。一般来说,它已被 less 取代 - 这是开玩笑地命名的,因为

少即是多

相关内容