0016. shell命令--cat

目录

16. shell命令--cat

功能说明

语法格式

选项说明

实践操作

注意事项


16. shell命令--cat

功能说明

        cat 是 Linux 和其他 Unix-like 系统中常用的一个命令,用于连接并显示文件的内容。cat 的名称来源于它的主要功能,即 concatenate(连接)并显示文件内容。

语法格式

cat [OPTION]... [FILE]... 
 
SYNOPSIS
    cat [OPTION]... [FILE]...

选项说明

  • -n 或 --number:对输出的所有行编号。
  • -b 或 --number-nonblank:仅对非空白行进行编号。
  • -s 或 --squeeze-blank:当遇到有连续两行或两行以上空白行时,只输出一个空白行。
  • -E 或 --show-ends:在每行结尾处显示 $ 符号。
  • -T 或 --show-tabs:将制表符显示为 ^I。
  • -u 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外,还显示其他所有非打印字符。
  • -v 或 --show-nonprinting:除了 LFD 和 TAB 之外,使用 ^ 和 M- 符号,显示其他所有非打印字符。
  • -A 或 --show-all:等价于 -vET。
  • -e:等价于"-vE"选项。
  • -t:等价于"-vT"选项。
  • --help:显示帮助信息并退出。
  • --version:显示版本信息并退出。

实践操作

1. 执行 cat 命令的完整命令生成文件内容,并且不带参数查看内容
mkdir -p /test/cat    #创建测试目录
cd /test/cat   #切换到测试目录

1.1. 基本格式
cat >fielname <<字符串    #开始符。一般为EOF,注意,结尾不要有其他字符,包括空格   
内容
字符串    #结束符。注意,结尾不要有其他字符,包括空格

1.2. 演示范例,这里注意设置第二空行是有空格的
cat >file1.txt <<aa

           
T33



T77
aa

cat file1.txt    #不带参数查看内容

2. 执行 cat 命令,分别带 -n 及 -b 选项,对比区别
cat -b file1.txt    #参数 -b 也打印行号,但不包括空行
cat -n file1.txt    #参数-n 打印行号,包括空行

3. 执行 cat  命令,带 -s  参数 
cat -sn file1.txt    #连续空行只显示一行

4. 执行 cat 命令,带 -E 参数
cat -E file1.txt    #结束标识符$
echo >file1.txt    
cat file1.txt
cat -E file1.txt    #结束标识符$,即使是空行也要显示$

5. 使用 cat 命令时,解决特殊字符消失问题
5.1. 模拟问题
cat >>file1.txt <<a
原始数据:/$test/$
a

cat file1.txt    #我就想要 /$test/$ ,但是个别字符不见了,肿么办?

5.2. 解决方法
cat >>file1.txt <<EOF
解决方法1:/\$test/\$    #在每个特殊字符前加 \ 符号
EOF




cat >>file1.txt <<'EOF'
解决方法2:/$test/$    #在前面的 EOF 加单引号
EOF

cat file1.txt 

6. 合并文件内容
cat > file1.txt    #不输入内容,按 Ctrl + d 结束 为清空内容,演示写入了1,2
cat file1.txt    #覆盖内容了
cat /dev/null >file1.txt    #也可以清空文件
cat file1.txt 
cat > file1.txt    #再次写入1,2
cat > file2.txt    #写入2,3
cat *    #显示多个文件内容
cat * >file3.txt    #将多个文件内容合并到新文件中
ls
cat file3.txt
cat file1.txt
#基本格式
cat >fielname <<字符串 
内容
字符串

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

mkdir -p /test/cat    
cd /test/cat

cat >file1.txt <<aa

           
T33



T77
aa

cat file1.txt 

输出结果:

[root@MineGi ~]# mkdir -p /test/cat    
[root@MineGi ~]# cd /test/cat
[root@MineGi /test/cat]# cat >file1.txt <<aa
> 
>            
> T33
> 
> 
> 
> T77
> aa
[root@MineGi /test/cat]# cat file1.txt 

           
T33



T77
[root@MineGi /test/cat]#

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

cat -b file1.txt    
cat -n file1.txt 

输出结果:

[root@MineGi /test/cat]# cat -b file1.txt    

     1               
     2    T33



     3    T77
[root@MineGi /test/cat]# cat -n file1.txt 
     1    
     2               
     3    T33
     4    
     5    
     6    
     7    T77
[root@MineGi /test/cat]#

命令示例:3. 执行 cat 命令,带 -s 参数

cat -sn file1.txt

输出结果:

[root@MineGi /test/cat]# cat -sn file1.txt
     1    
     2               
     3    T33
     4    
     5    T77
[root@MineGi /test/cat]# 

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

cat -E file1.txt    
echo >file1.txt    
cat file1.txt
cat -E file1.txt

输出结果:

[root@MineGi /test/cat]# cat -E file1.txt    
$
           $
T33$
$
$
$
T77$
[root@MineGi /test/cat]# echo >file1.txt 
[root@MineGi /test/cat]# cat file1.txt

[root@MineGi /test/cat]# cat -E file1.txt
$
[root@MineGi /test/cat]#

命令示例:5. 使用 cat 命令时,解决特殊字符消失问题

cat >>file1.txt <<a
原始数据:/$test/$
a

cat >>file1.txt <<EOF
解决方法1:/\$test/\$    
EOF

cat >>file1.txt <<'EOF'
解决方法2:/$test/$    
EOF

cat file1.txt

输出结果:

[root@MineGi /test/cat]# cat >>file1.txt <<a
> 原始数据:/$test/$
> a
[root@MineGi /test/cat]# cat >>file1.txt <<EOF
> 解决方法1:/\$test/\$    
> EOF
[root@MineGi /test/cat]# cat >>file1.txt <<'EOF'
> 解决方法2:/$test/$    
> EOF
[root@MineGi /test/cat]# cat file1.txt

原始数据://$
解决方法1:/$test/$    
解决方法2:/$test/$    
[root@MineGi /test/cat]#

命令示例:6. 合并文件内容

cat > file1.txt    
cat file1.txt    
cat /dev/null >file1.txt    
cat file1.txt 
cat > file1.txt    
cat > file2.txt    
cat *    
cat * >file3.txt    
ls
cat file3.txt
cat file1.txt

输出结果:

[root@MineGi /test/cat]# cat > file1.txt
1
2
[root@MineGi /test/cat]# cat file1.txt
1
2
[root@MineGi /test/cat]# cat /dev/null >file1.txt
[root@MineGi /test/cat]# cat file1.txt 
[root@MineGi /test/cat]# cat > file1.txt
1
2
[root@MineGi /test/cat]# cat > file2.txt
3
4
[root@MineGi /test/cat]# cat *
1
2
3
4
[root@MineGi /test/cat]# cat * >file3.txt
[root@MineGi /test/cat]# ls
file1.txt  file2.txt  file3.txt
[root@MineGi /test/cat]# cat file3.txt
1
2
3
4
[root@MineGi /test/cat]# cat file1.txt
1
2
[root@MineGi /test/cat]# 

注意事项

  • 当使用 cat 命令查看大文件时,要小心,因为整个文件内容都会被加载到内存中并显示在终端上,这可能会导致终端变得非常缓慢或崩溃。
  • 对于大文件或需要更高级文本处理的情况,建议使用其他工具,如 less、more 或 awk、sed 等。

        cat 命令虽然简单,但在日常的文件查看和操作中非常有用。熟悉其选项和用法可以大大提高在 Linux 系统中的工作效率。

总结

        cat 命令是 Linux 系统中一个非常实用且常用的命令,用于查看和连接文件内容。通过熟悉其基本语法和常用选项,并结合重定向和管道操作,你可以执行各种复杂的文本处理任务。然而,在处理大文件时,要注意内存使用和终端性能的问题,可以考虑使用其他更适合的工具。总的来说,掌握 cat 命令将极大地提高你在 Linux 系统中处理文本文件的工作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值