小智 301
cat由于您的文件很短,您可以使用
cat.
cat filename
Run Code Online (Sandbox Code Playgroud)
less如果您必须查看较长文件的内容,可以使用诸如
less.
less filename
Run Code Online (Sandbox Code Playgroud)
您可以使less行为类似于cat在小文件上调用时的行为,否则通过传递-F和-X标志来正常行为。
less -FX filename
Run Code Online (Sandbox Code Playgroud)
我有一个别名less -FX。你可以像这样自己制作一个:
alias aliasname='less -FX'
Run Code Online (Sandbox Code Playgroud)
如果您将别名添加到您的shell 配置中,您就可以永远使用它。
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
Run Code Online (Sandbox Code Playgroud)
小智 47
尽管每个人都使用cat filename打印文件中的文本到标准输出第一个目的是CON猫enating。从 cat 的手册页:
cat - 连接文件并在标准输出上打印
现在 cat 可以用于打印文件,但还有其他选择:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
Run Code Online (Sandbox Code Playgroud)
所述( )的内容返回一个表达式的值,在这种情况下的文件名,然后由膨胀$为echo或printf。
更新:
< filename
Run Code Online (Sandbox Code Playgroud)
这正是您想要的,并且很容易记住。
下面是一个示例,它允许您在菜单中选择一个文件,然后将其打印出来。
#!/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
Run Code Online (Sandbox Code Playgroud)
进一步阅读:
BashPitfalls - cat 文件 | sed s/foo/bar/ > 文件
Bash 参考 - 重定向
小智 15
在 unix 上处理文本文件的工具是基本的日常命令:
在 unix 和 linux 中打印出文件中的全部内容
cat filename.txt
Run Code Online (Sandbox Code Playgroud)
或者
more filename.txt
Run Code Online (Sandbox Code Playgroud)
或者
less filename.txt
Run Code Online (Sandbox Code Playgroud)
对于最后几行
tail filename.txt
Run Code Online (Sandbox Code Playgroud)
对于前几行
head filename.txt
Run Code Online (Sandbox Code Playgroud)
一种选择是使用 more
例如 more file.txt
但是,它没有添加的所有功能less。
一个简单的例子是你不能在输出中向上滚动。通常它已被 less 取代 - 以开玩笑的方式命名是因为
少即是多