Shell命令-文件及内容处理之cat、tac

时间:2024-01-06 20:25:32

文件及内容处理 - cat、tac

1. cat:显示文件内容

cat命令的功能说明

cat命令用于连接多个文件并且打印到屏幕输出或重定向到指定文件中

cat命令的语法格式

cat [OPTION]... [FILE]...
cat [-AbeEnstTuv] [--help] [--version] fileName

file命令的选项说明

cat 参数很多,但用到的就几个。表1为 cat 命令的参数及说明:

表1: cat命令的参数及说明

参数选项 解释说明
-n 或 --number 由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends 在每行结束处显示 $。
-T 或 --show-tabs 将 TAB 字符显示为 ^I。
-A, --show-all 等价于 -vET。
-e 等价于"-vE"选项;
-t 等价于"-vT"选项;

cat命令的实践操作

范例1: 执行cat命令的完整命令生成oldboy.txt文件内容,并且不带参数查看内容

--------------------------------------------------------------
==>命令如下<==
--------------------------------------------------------------
cat >oldboy.txt <<EOF
I Love Linux

Me too

good
EOF

--------------------------------------------------------------
==>演示如下<==
--------------------------------------------------------------
[root@oldboyedu /test]# ls
[root@oldboyedu /test]# cat >oldboy.txt <<EOF
> I Love Linux
>
> Me too

>good
> EOF
[root@oldboyedu /test]# ls
oldboy.txt

--------------------------------------------------------------
==>不带参数查看内容<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat oldboy.txt
I Love Linux

Me too

good

范例2: 执行cat命令,分别带 -n及-b 选项,并对比区别

--------------------------------------------------------------
==>-n打印行号,包括空行<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat -n oldboy.txt
     1  I Love Linux
     2
     3  Me too
     4
     5  good

--------------------------------------------------------------
==>-b也打印行号,但不包括空行<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat -b oldboy.txt
     1  I Love Linux

     2  Me too

     3  good

范例4: 执行 cat 命令,带 -E 参数

[root@oldboyedu /test]# cat -E oldboy.txt
I Love Linux$
$
Me too$
$
good$

--------------------------------------------------------------
==>结束标识符$,即使是空行也要显示$<==
--------------------------------------------------------------
[root@oldboyedu /test]# echo >oldboy1.txt
[root@oldboyedu /test]# cat -E oldboy1.txt
$
[root@oldboyedu /test]# ll oldboy1.txt
-rw-r--r-- 1 root root 1 4月  14 15:18 oldboy1.txt

范例5: 执行 cat 命令,带 -s 参数

--------------------------------------------------------------
==>追加几行文本<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat >>oldboy.txt <<EOF
>
>
> if you like my blog
>
>
> call me qq
> EOF

--------------------------------------------------------------
==>结果如下<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat oldboy.txt
I Love Linux

Me too

good

if you like my blog

call me qq

--------------------------------------------------------------
==>-s效果如下<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat -s oldboy.txt
I Love Linux

Me too

good

if you like my blog

call me qq

2. tac:反向显示文件内容

tac命令的功能说明

taccat的反向拼写,因此命令的功能为反向显示文件内容

cat命令的语法格式

tac [OPTION]... [FILE]...
tac [-AbeEnstTuv] [--help] [--version] fileName

tac命令的选项说明

tac 用的不多,在此简单了解一下即可

范例1: 倒序查看文本内容

--------------------------------------------------------------
==>文件里写文本内容<==
--------------------------------------------------------------
[root@oldboyedu /test]# echo "1234567" >> oldboy3.txt
[root@oldboyedu /test]# echo "1234567" >> oldboy3.txt
[root@oldboyedu /test]# echo "1111111" >> oldboy3.txt
[root@oldboyedu /test]# echo "2222222" >> oldboy3.txt
[root@oldboyedu /test]# echo "3333333" >> oldboy3.txt

--------------------------------------------------------------
==>正常查看<==
--------------------------------------------------------------
[root@oldboyedu /test]# cat oldboy3.txt
1234567
1234567
1111111
2222222
3333333

--------------------------------------------------------------
==>反向查找<==
--------------------------------------------------------------
[root@oldboyedu /test]# tac oldboy3.txt
3333333
2222222
1111111
1234567
1234567
[root@oldboyedu /test]# 

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津