SHELL脚本攻略--2.1 cat

cat可以接受来自stdin的信息,一般用来显式或查看内容,如果信息来源是多个,则可以进行内容的追加拼接(上下拼接,而不是左右拼接)。

-n显示行号。

-E将每行结尾的换行符用$表示出来,以分辨哪里是换行了的。

-A比-E效果更多,不仅行尾用$表示,空格也表示

-s压缩空行,将有连续空行的地方压缩成一行。

-T将制表符使用^I标记出来,这主要是为了将制表符和空格区分开。

示例:

[[email protected] tmp]# cat test1.sh

#!/bin/bash

i=4

until echo "$i"

test $i -eq 0

do

echo "in looping"

let i-=1

done

加上几个参数。

[[email protected] tmp]# cat -sTn test1.sh

1  #!/bin/bash

2

3  i=4

4  until echo "$i"

5  ^Itest $i -eq 0        ç制表符被标识为^I

6                       ç空行被压缩

7  do

8  echo "in looping"

9  ^Ilet i-=1

10  done

内容拼接。

[[email protected] tmp]# cat -Tsn test1.sh test1.sh          çTsn选项会作用于拼接后的内容

1  #!/bin/bash

2

3  i=4

4  until echo "$i"

5  ^Itest $i -eq 0

6

7  do

8  echo "in looping"

9  ^Ilet i-=1

10  done

11  #!/bin/bash

12

13  i=4

14  until echo "$i"

15  ^Itest $i -eq 0

16

17  do

18  echo "in looping"

19  ^Ilet i-=1

20  done

关于cat还有一个很重要的功能,可以以分行写的方式将多行内容输入到一个文件中去。

首先测试第一步:可以知道<<eof配对中的内容是cat命令的标准输入stdin,这时候eof可以随便使用其他符号代替。

[[email protected] tmp]# cat <<eof

> abc.com

> eof

abc.com

[[email protected] tmp]# cat <<EOF

> EOF

[[email protected] tmp]# cat <<EOx

> EOx

那么测试使用<eof试试。发现没有输入的机会。并且此时只能使用eof作为符号,EOF或其他任何都不可以。因为<eof是直接覆盖stdin,也就是没有输入。所以一定要使用<<eof。

[[email protected] tmp]# cat <eof

[[email protected] tmp]# cat <eox

-bash: eox: No such file or directory

[[email protected] tmp]# cat <EOF

-bash: EOF: No such file or directory

再进一步测试<<eof的功能,使用它来分行输入内容到文件中。这时有两种方案:

第一种方案:

[[email protected] ~]# cat >>/tmp/test.txt<<EOF    ç输入到这里按回车键继续输入下一行  ç覆盖的方式到test.txt

> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   ç按回车输入下一行

> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy                          ç按回车输入下一行

> zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz         ç按回车输入下一行

> EOF                                                     ç顶格写EOF结束输入

第二种方案:

[[email protected] tmp]# cat <<eof>log.txt  ç追加的方式到log.txt

> abc.com

> eof

两种方案结果是一样的,只是注意<<eof是cat的stdin就是了,顺便控制好是对文件进行覆盖还是追加输入。

(1). 文件test.txt可以预先不存在,输入完毕后会自动创建;

(2). <<EOF的EOF可以换成任意其他字母,但是结束输入时,必须和开始输入字母对应。

时间: 2024-11-06 02:19:26

SHELL脚本攻略--2.1 cat的相关文章

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Linux Shell脚本攻略(1.3)

1.3 玩转变量和环境变量 变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量.脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以.在Bash中,每一个变量的值都是字符串.无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储.有一些特殊的变量会被shell环境和操作系统保留,用来存储一些特别的值,这类变量就称为环境变量,相信大家对环境变量也并不陌生,因为即使在windows操作系统上,也存在环境变量. 普通变量 普通变

老李分享:《Linux Shell脚本攻略》 要点(二)

老李分享:<Linux Shell脚本攻略> 要点(二) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478.Linuxshell是测试开发工程师的基本功之一,所以在poptest测试开发课堂上加入了大量的linuxshell的课程,为了学员开发跨平台的测试平台打基础. 1.cat cat -s //多个空白行压缩成一个 cat *.txt | tr -s '\n'   //

老李分享:《Linux Shell脚本攻略》 要点(四)

老李分享:<Linux Shell脚本攻略> 要点(四) 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2.grep用法 //在多级目录中对文本进行递归检索 [[email protected] program_test]# grep "yang" ./ -Rn ./test.txt:6:laoyang./right.txt:1:1 yang man //忽略大小写匹配 [[email protec

老李分享:《Linux Shell脚本攻略》 要点(一)

老李分享:<Linux Shell脚本攻略> 要点(一) 第一章:Shell起步基础 1.变量:在bash中,每一个变量的值都是字符串.无论你给变量赋值时,有没有使用引号,值都会以字符串的形式存储. 2.var=value; //赋值操作 var = value: //相等操作 3.获取字符串的长度 [[email protected] ~]$ var=yang [[email protected] ~]$ length=${#var} [[email protected] ~]$ echo

老李分享:《Linux Shell脚本攻略》 要点(六)

老李分享:<Linux Shell脚本攻略> 要点(六) 1.打印网络接口列表 [[email protected] touch_more]# ifconfig | cut -c-10 | tr -d ' ' | tr -s '\n'eth0lo //cut -c-10 ;  输出前10个字符; //tr -d ' ' ;      删除所有空格; //tr -s '\n';     压缩重复的换行符 2.查看名字服务器 [[email protected] touch_more]# cat

老李分享:《Linux Shell脚本攻略》 要点(三)

老李分享:<Linux Shell脚本攻略> 要点(三) 1.生产任意大小的文件 [[email protected] dd_test]#[[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=1010+0 records in10+0 records out10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file_var

《Linux Shell脚本攻略》 笔记 第一章:Shell起步基础

<Linux Shell脚本攻略> 笔记 第一章:Shell起步基础 1.变量:在bash中,每一个变量的值都是字符串.无论你给变量赋值时,有没有使用引号,值都会以字符串的形式存储. 2.var=value; //赋值操作 var = value: //相等操作 3.获取字符串的长度 [[email protected] ~]$ var=yang [[email protected] ~]$ length=${#var} [[email protected] ~]$ echo $length

《Linux Shell脚本攻略》 笔记 第二章:常用命令

<Linux Shell脚本攻略> 笔记 第二章:常用命令 1.cat cat -s //多个空白行压缩成一个 cat *.txt | tr -s '\n'   //移除空白行 cat -n //加行号 2.find 沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作. eg: find ./ ! -name "*.txt" -print [[email protected] program_test]# find ./  -type f -name "