linux可以导出文件内容吗?
Linux 中 用cat 输出文件内容
功能:把一个或者多个文件(或者标准输入)连接在一起,并标准输出。(Concatenate FILE(s), or standard input, to standard output.)
cat命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。它常与重定向符号配合使用。cat是Concatenate的缩写。
Linux 有三个特别文件,分别
-标准输入 即 STDIN , 在 /dev/stdin
一般指键盘输入, shell里代号是 0
-标准输出 STDOUT, 在 /dev/stdout
一般指终端(terminal), 就是显示器, shell里代号是 1
-标准错误 STDERR, 在 /dev/stderr
也是指终端(terminal), 不同的是, 错误信息送到这里
shell里代号是 2
1 | 语法: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 之外 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 输出文件内容 显示文件FILE的内容
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 |
undefined
cat 使用实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 从标准输入创建文件 [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]# 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
~]# |
heredoc文档在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?EOF是“end of file”,表示文本结束符。
<
(内容)
EOF
EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
接下来,简单描述一下几种常见的使用方式及其作用:
cat <
cat >filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入。
cat >filename <
1 2 3 4 | #
cat >test.sh <<EOF >
#!/bin/bash >
#you Shell script writes here. >
EOF |
undefined
其他写法
1、追加文件
# cat <
2、追加文件,换一种写法
# cat >>test.sh <
3、EOF只是标识,不是固定的。这里的“HHH”就代替了“EOF”的功能。结果是相同的。
# cat <
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
4、非脚本中。如果不是在脚本中,我们可以用Ctrl+D输出EOF的标识
# cat >iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl+D
我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!