Linux 中 用cat 输出文件内容
2016-10-10 00:00
405 查看
功能:把一个或者多个文件(或者标准输入)连接在一起,并标准输出。(Concatenate FILE(s), or standard input, to standard output.)
cat命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。它常与重定向符号配合使用。cat是Concatenate的缩写。
Linux 有三个特别文件,分别
1)标准输入 即 STDIN , 在 /dev/stdin
一般指键盘输入, shell里代号是 0
2) 标准输出 STDOUT, 在 /dev/stdout
一般指终端(terminal), 就是显示器, shell里代号是 1
3) 标准错误 STDERR, 在 /dev/stderr
也是指终端(terminal), 不同的是, 错误信息送到这里
shell里代号是 2
显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。使用-n参数时,所有空行也会显示行号
忽略掉空行,用-b
当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数
保存内容
将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的
将标准输入追加到文件FILE末尾
合并文件
将两个文件FILE1和FILE2的内容合并为一个文件FILE
Hello
Bash
Linux
[root@web setup]#
Hello
Bash
Linux
[root@web setup]#
使用heredoc来生成文件
注意:粗体部分、here doc可以进行字符串替换
[root@web setup]#
> Hello
> Bash
> Linux
> PWD=$(pwd)
> EOF
[root@web setup]# ls -l 2.txt
-rw-r--r-- 1 root root 33 11-02 21:35 2.txt
[root@web setup]#
Hello
Bash
Linux
PWD=/root/setup
[root@web setup]#
输出行号
[root@web setup]#
1 Hello
2 Bash
3 Linux
[root@web setup]# nl 1.txt
1 Hello
2 Bash
3 Linux
[root@web setup]#
在bash脚本中把文件内容加载到变量中
[root@web ~]# TEXT=$(
[root@web ~]#
[root@web ~]# echo "$TEXT"
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
[root@web ~]#[/code]
<<EOF
(内容)
EOF
EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
接下来,简单描述一下几种常见的使用方式及其作用:
cat <<EOF,以EOF输入字符为标准输入开始
cat >filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入。
cat >filename <<EOF,以EOF作为输入结束,和ctrl+d的作用一样。
> #!/bin/bash
> #you Shell script writes here.
> EOF[/code]
#
2、追加文件,换一种写法
#
3、EOF只是标识,不是固定的。这里的“HHH”就代替了“EOF”的功能。结果是相同的。
#
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
4、非脚本中。如果不是在脚本中,我们可以用Ctrl+D输出EOF的标识
#
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl+D
cat命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。它常与重定向符号配合使用。cat是Concatenate的缩写。
Linux 有三个特别文件,分别
1)标准输入 即 STDIN , 在 /dev/stdin
一般指键盘输入, shell里代号是 0
2) 标准输出 STDOUT, 在 /dev/stdout
一般指终端(terminal), 就是显示器, shell里代号是 1
3) 标准错误 STDERR, 在 /dev/stderr
也是指终端(terminal), 不同的是, 错误信息送到这里
shell里代号是 2
语法:cat [选项] [文件]
短选项 | 长选项 | 涵义 |
---|---|---|
-A | --show-all | 等于-vET |
-b | --number-nonblank | 对非空输出行编号 |
-e | 等于-vE | |
-E | --show-ends | 在每行结束处显示"$" |
-n | --number | 对输出的所有行编号 |
-s | --squeeze-blank | 不输出多行空行 |
-t | 与-vT 等价 | |
-T | --show-tabs | 将跳格字符显示为^I |
-v | --show-nonprinting | 使用^ 和M- 引用,除了LFD和 TAB 之外 |
输出文件内容 显示文件FILE的内容 [code=plain]cat FILE
显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。使用-n参数时,所有空行也会显示行号
cat -n FILE
忽略掉空行,用-b
cat -b FILE
当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数
cat -s FILE
保存内容
将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的
cat >FILE
将标准输入追加到文件FILE末尾
cat >>FILE
合并文件
将两个文件FILE1和FILE2的内容合并为一个文件FILE
cat FILE1 FILE2 >FILE[/code]
cat 使用实例
从标准输入创建文件 [root@web setup]# code>cat >1.txt Hello Bash Linux 键盘(快捷键)Ctrl+D 保存文件 [root@web setup]# ls -l 1.txt -rw-r--r-- 1 root root 17 11-02 21:32 1.txt [root@web setup]# [code=plain]cat 1.txt显示1.txt文本内容。标准输出
Hello
Bash
Linux
[root@web setup]#
cat <1.txt
Hello
Bash
Linux
[root@web setup]#
使用heredoc来生成文件
注意:粗体部分、here doc可以进行字符串替换
[root@web setup]#
cat >2.txt<<EOF
> Hello
> Bash
> Linux
> PWD=$(pwd)
> EOF
[root@web setup]# ls -l 2.txt
-rw-r--r-- 1 root root 33 11-02 21:35 2.txt
[root@web setup]#
cat 2.txt
Hello
Bash
Linux
PWD=/root/setup
[root@web setup]#
输出行号
[root@web setup]#
cat -n 1.txt
1 Hello
2 Bash
3 Linux
[root@web setup]# nl 1.txt
1 Hello
2 Bash
3 Linux
[root@web setup]#
在bash脚本中把文件内容加载到变量中
[root@web ~]# TEXT=$(
cat .bash_profile)
[root@web ~]#
[root@web ~]# echo "$TEXT"
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
[root@web ~]#[/code]
heredoc文档
在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?EOF是“end of file”,表示文本结束符。<<EOF
(内容)
EOF
EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
接下来,简单描述一下几种常见的使用方式及其作用:
cat <<EOF,以EOF输入字符为标准输入开始
cat >filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入。
cat >filename <<EOF,以EOF作为输入结束,和ctrl+d的作用一样。
# [code=plain]cat >test.sh<<EOF
> #!/bin/bash
> #you Shell script writes here.
> EOF[/code]
其他写法
1、追加文件#
cat <<EOF >>test.sh
2、追加文件,换一种写法
#
cat >>test.sh <<EOF
3、EOF只是标识,不是固定的。这里的“HHH”就代替了“EOF”的功能。结果是相同的。
#
cat <<HHH >iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
4、非脚本中。如果不是在脚本中,我们可以用Ctrl+D输出EOF的标识
#
cat >iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl+D
相关文章推荐
- Linux查看文件内容的方法(cat,tac,more,less,head,tail)
- Linux 文件内容查看工具介绍--cat,less,more,tail,head//http://blog.sina.com.cn/s/blog_737103810100qsxk.html
- Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
- Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
- Linux 命令 - cat: 合并文件至标准输出
- linux文件内容查看(cat,tac,nl,more,less,head,tail,od)
- linux下cat 命令使用详解(显示文件内容)
- Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
- 【Unix/Linux】【命令】【文本工具】标准输出打印/连接文件——cat
- Linux显示文本文件内容(cat, less)
- linux文件内容查看(cat,tac,nl,more,less,head,tail,od)
- linux实时监视文件的内容输出
- Linux文件内容输出常用功能命令
- 菜鸟学Linux命令:cat命令 查看文件内容
- linux命令:怎么样比较2个文件的内容,然后将内容一致的行输出
- Linux文件内容操作(一) 查看文件内容 cat
- 内容输出Linux文件系统的的实现:创建一个文件的过程
- linux用于查看文件内容 tail、cat、more、less、head 、sed 命令
- centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课
- Linux学习笔记----文件处理命令--cat ==显示文件内容