Linux 输出文件的内容,Linux 中 用cat 输出文件内容

功能:把一个或者多个文件(或者标准输入)连接在一起,并标准输出。(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

语法: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的内容

显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。使用-n参数时,所有空行也会显示行号

忽略掉空行,用-b

当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数

保存内容

将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的

将标准输入追加到文件FILE末尾

合并文件

将两个文件FILE1和FILE2的内容合并为一个文件FILE

cat FILEcat -n FILEcat -b FILEcat -s FILEcat >FILEcat >>FILEcat FILE1 FILE2 >FILE

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]#   显示1.txt文本内容。标准输出

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 ~]#cat 1.txtcat <1.txtcat >2.txtcat 2.txtcat -n 1.txtcat .bash_profile

heredoc文档

在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?EOF是“end of file”,表示文本结束符。

<

(内容)

EOF

EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。

可以把EOF替换成其他东西,意思是把内容当作标准输入传给程

结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。

接下来,简单描述一下几种常见的使用方式及其作用:

cat <

cat >filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入。

cat >filename <

# <

> #!/bin/bash

> #you Shell script writes here.

> EOFcat >test.sh

其他写法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值