第二周作业

本文详细总结了Linux中的文本处理工具,包括grep命令的正则表达式使用,如基本正则和扩展正则,以及字符匹配、次数匹配、位置锚定等。此外,还介绍了变量命名规则,环境变量、位置变量、只读变量和局部变量的使用。最后,讲解了磁盘存储术语,如head、track、sector和cylinder,并概述了MBR和GPT分区结构的特点和区别。
摘要由CSDN通过智能技术生成

1. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例。

查看文本文件内容

cat 查看文本内容

格式:

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

-E:显示行结束符$

-A:显示所有控制符

-n:对显示出的每一行进行编号

-b:非空行编号

-s:压缩连续的空行成一行

[root@rocky8 ~]# cat -n test.sh
     1  #!/bin/bash
     2
     3  var() {
     4      local var="$1"
     5      echo "${!var}"
     6  }
     7  var 1 a
nl 显示行号,相当于cat -b

-b a 无论是否是空行都列出行号

-b t 空行不列出行号(默认)

-n ln 行号在显示栏的最左边显示且空行不列出行号

-n rn 行号在显示栏的最右边显示,且空行不列出行号,不填充0

-n rz 行号在显示栏的最右边显示,且加0

[root@rocky8 ~]# nl -b a test.txt
     1  sdafd
     2  dfd
     3  123
     4  dfgd
     5  yyy
tac 逆向显示文本内容

-s:使用指定字符串代替换行作为分隔标志

两个文件内容合并成一个文件

 tac a.txt b.txt > c.txt 

[root@rocky8 ~]# seq 5 | tac
5
4
3
2
1
rev 将同一行的内容逆向显示

反转日志文件中的后三行文本

#tail -n3 log.txt | rev

[root@rocky8 ~]# echo "hello,world!" | rev
!dlrow,olleh
hexdump 查看非文本文件内容 [root@rocky8 ~]# hexdump -C -n 512 /dev/sda
00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
[root@rocky8 ~]# echo {a..z} | tr -d ' '|hexdump -C
00000000  61 62 63 64 65 66 67 68  69 6a 6b 6c 6d 6e 6f 70  |abcdefghijklmnop|
00000010  71 72 73 74 75 76 77 78  79 7a 0a                 |qrstuvwxyz.|
0000001b
分页查看文件内容

more 可以实现分页查看文件,可以配合管道实现输出信息的分页

格式:

more [OPTIONS...] FILE...

-d:显示翻页及退出提示 [root@rocky8 ~]# more /var/log/messages

less 可以实现分页查看文件或STDIN输出,less命令是man命令使用的分页器

查看时有用的命令包括:

/文本 搜索 文本

n/N 跳到下一个 或 上一个匹配

[root@rocky8 ~]# tree -d /etc |less
│   └── conf.d
├── alternatives
├── anaconda
│   ├── conf.d
│   └── product.d
...省略...
显示文本前面或后面的行内容

head 可以显示文件或标准输入的前面行

格式:

head [OPTION]... [FILE]...

-c #   指定获取前#字节

-n #   指定获取前#行,#如果为负数,表示从文件头取到倒数第#前

-#   同上

[root@rocky8 ~]# head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

tail 和head相反,查看文件或标准输入的倒数行

格式:

tail [OPTION]... [FILE]...

-c #   指定获取后#字节

-n #   指定获取后#行,如果#是负数,表示从第#行开始到文件结束

-#   同上

-f   跟踪显示文件fd新追加的内容,常用日志监控,相当于 --follow=descriptor,当文件删除再新建同名文件,将无法继续跟踪文件

-F  跟踪文件名,相当于--follow=name --retry,当文件删除再新建同名文件,将可以继续跟踪文件

tailf  类似 tail –f,当文件不增长时并不访问文件,节约资源,CentOS8已经无此工具

[root@rocky8 ~]# tail -n 3 a.txt
5
6
7
按列抽取文本

cut 命令可以提取文本文件或STDIN数据的指定列

格式:

cut [OPTION]...[FILE]...

-d DELIMITER: 指明分隔符,默认tab

-f FILEDS:

    #: 第#个字段,例如:3

    #,#[,#]:离散的多个字段,例如:1,3,6

    #-#:连续的多个字段, 例如:1-6

    混合使用:1-3,7

-c  按字符切割

--output-delimiter=STRING指定输出分隔符

[root@rocky8 ~]# ifconfig |head -n2 |tail -n1|cut -d" " -f10
192.168.31.23
合并多个文件

paste 合并多个文件同行号的列到一行

格式:

paste [OPTION]...[FILE]...

-d  #分隔符:指定分隔符,默认用TAB

-s  #所有行合成一行显示

[root@rocky8 ~]# paste -d ":" a.txt b.txt
1:a
2:b
3:c
4:d
5:e
6:
7:
分析文本的工具
wc命令可用于统计文件的行总数、单词总数、字节总数和字符总数;可以对文件或STDIN中的数据统计

-l   只计数行数

-w 只计数单词总数

-c  只计数字节总数 

-m 只计数字符总数

-L  显示文件中最长行的长度

[root@rocky8 ~]# wc a.txt
 7  7 14 a.txt

sort 文本排序,把整理过的文本显示在STDOUT,不改变原始文件

格式:

sort [OPTION] file(s)

-r  执行反方向(由上至下)整理

-R  随机排序

-n  执行按数字大小整理

-h  人类可读排序,如: 2K 1G

-f   选项忽略(fold)字符串中的字符大小写

-u   选项(独特,unique),合并重复项,即去重

-t c   选项使用c做为字段界定符

-k #  选项按照使用c字符分隔的 # 列来整理能够使用多次

查看分区利用率最高值

[root@rocky8 ~]# df | tr -s ' ' '%'|cut -d% -f5|sort -nr|head -1
27

uniq命令从输入中删除前后相接的重复的行

格式:

uniq [OPTION]... [FILE]...

-c: 显示每行重复出现的次数

-d: 仅显示重复过的行

-u: 仅显示不曾重复的行

uniq常和sort 命令一起配合使用:

sort userlist.txt | uniq -c

取文件的共同行

[root@rocky8 ~]# cat a.txt b.txt | sort |uniq -d
d

比较文件
diff命令比较两个文件之间的区别 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件 [root@rocky8 ~]# diff a.txt b.txt
1c1
< 1
---
> 2
3c3
< e
---
> c
patch 复制在其它文件中进行的改变(要谨慎使用) -b 选项来自动备份改变了的文件

#若b.txt被删除了,可以通过a.txt和diff.log两个文件恢复

[21:29:49 zhu@rocky8 ~]$diff -u a.txt b.txt > diff.log

[21:33:39 zhu@rocky8 ~]$rm -f b,txt

[21:33:46 zhu@rocky8 ~]$patch -b a.txt diff.log

patching file a.txt

vimdiff 相当于vim -d [21:35:27 zhu@roc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笑哈哈666

您的鼓励是我创作的源泉

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

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

打赏作者

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

抵扣说明:

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

余额充值