您当前所在位置:首页linuxlinux可以导出文件内容吗?

linux可以导出文件内容吗?

更新:2024-05-28 09:43:26编辑:dashuai归类:linux人气:295

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 <>test.sh

2、追加文件,换一种写法

# cat >>test.sh <

3、EOF只是标识,不是固定的。这里的“HHH”就代替了“EOF”的功能。结果是相同的。

# cat <iii.txt

> sdlkfjksl

> sdkjflk

> asdlfj

> HHH

4、非脚本中。如果不是在脚本中,我们可以用Ctrl+D输出EOF的标识

# cat >iii.txt

skldjfklj

sdkfjkl

kljkljklj

kljlk

Ctrl+D

我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

linux
如何通过命令行保护你的Linux服务器? linux系统如何更改文件权限