我想在命令行上显示文本文件的内容。该文件仅包含 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 取代 - 这是开玩笑地命名的,因为
少即是多