文本查询及处理工具
1.wc:word count统计操作
wc -l 统计文本内容行数;
wc -c 显示字节数;
wc -w 显示单词数
例:
# wc fstab
10 48 407 fstab
# wc -c fstab
407 fstab
# wc -w fstab
48 fstab
2.cut:从文本当中每一行截取指定列
10 48 407 fstab
# wc -c fstab
407 fstab
# wc -w fstab
48 fstab
2.cut:从文本当中每一行截取指定列
cut -d +字符(如“:”或‘ ’空格):表示以什么符号为分隔符显示列
cut -f #,#|#-#:指定显示#,#|#-#的列
3.sort:输出文件内容至内存中并排序显示(默认为顺序显示)
sort -t 指定分隔符排序显示;
sort -k+列数 用于排序比较字段
sort -n 基于数字大小进 行排序
sort -f 忽略大小写
sort -r 逆序排序
sort -u 重复行只保留一份
# cat date
2017-12-02
2017-01-09
2017-10-23
2017-04-24
2017-12-02
2017-01-09
2017-10-23
2017-04-24
这个文件有三列,列与列之间用“-”隔开了,第一列表示年,第二列表示月,第三列表示日。那么我想以月来排序,也就是以第二列来排序,如何利用sort实现?幸好,sort提供了-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了。
# sort -n -k 2 -t'-' date // -t<分隔字符> 指定排序时所用的栏位分隔字符。 -k 选择以哪个区间进行排序
2017-01-09
2017-04-24
2017-10-23
2017-12-02
4.uniq:报告或移除重复的行=sort -u
uniq -c 统计重复的行出现在次数
uniq -u 显示不重复的行
uniq -d 显示重复过的行
5.diff逐行比较两个文件的不同之处
diff file1 file2
例:
# diff fstab fstab.d
2c2 第二行
< # --旧文件
---
> #hello word!!! --新文件
diff -u 两个文件比较显示结果后+上默认三行文件内容
# diff -u fstab fstab.d
--- fstab 2020-09-24 17:06:28.005065472 +0800 ---老文件
+++ fstab.d 2020-09-24 16:49:11.931637806 +0800 ++新文件
@@ -1,5 +1,5 @@
-# 老文件-去此行
+#hello word!!! 新文件+上此行
# /etc/fstab
# Created by anaconda on Sat Sep 5 14:58:40 2020
#
6.patch打补丁
patch -i 指明补丁文件
打补丁流程
1.制作补丁
diff file1 file2 >file.patch
2.打补丁
pacht -i file.patch(补丁文件) file1(需打补丁的文件)
3.补丁回滚
patch -R -i file.patch file1