Linux 文本处理工具
来源:互联网 发布:scala二维数组 编辑:程序博客网 时间:2024/06/06 14:27
文本处理工具
一、diff命令:用来比较两个文件的不同
1.编辑两个内容不完全相同的文件
[root@localhost ~]# cd /mnt
[root@localhost mnt]# vim first
[root@localhost mnt]# vim second
[root@localhost mnt]# cat first
linux westos
[root@localhost mnt]# cat second
linux westos
redhat
2.使用diff命令进行比较
[root@localhost mnt]# diff firstsecond #结果显示文件中不同的内容
1a2
> redhat #不同内容
[root@localhost mnt]# diff -c firstsecond #查看文件不同位置的上下行
*** first 2017-04-2921:13:54.613839495 -0400
--- second 2017-04-2921:14:17.441839495 -0400
***************
*** 1 ****
--- 1,2 ----
linux westos
+ redhat #不同内容
[root@localhost mnt]# diff -u firstsecond #按一定格式比较
--- first 2017-04-2921:13:54.613839495 -0400
+++ second 2017-04-2921:14:17.441839495 -0400
@@ -1 +1,2 @@
linux westos
+redhat
3.生成补丁文件
[root@localhost mnt]# diff -u first second> first.path #生成补丁文件
[root@localhost mnt]# ls
first first.path second #first.path为补丁文件
4.使用补丁文件对系统中相似文件进行更改
(1)先下载patch软件包
yuminstall patch -y
(2)patch firstfirst.path #文件内容更改,
如下:原文件内容将改变
(3)patch -b first first.path #将原文件备份,再进行修补
[root@localhost mnt]# patch firstfirst.path -b
patching file first
[root@localhost mnt]# ls
first first.orig first.path second #firest.orig为原文件的备份文件
[root@localhost mnt]# cat first
linux westos
redhat
[root@localhost mnt]# cat first.orig #备份文件内容即为原文件内容
linux westos
二、grep查找关键字
1.文件内容中查找关键字
grep 关键字 文件名 #精准查找对对应的关键字
grep -i 关键字 文件名 #粗略查找,包含大小写
grep -i 关键字 文件名 -v #查找相反项
grep -i -E “关键字|关键字2” 文件名 #过滤各个关键字
grep -i -E "^关键字1|关键字2$" 文件名 #过滤以关键字1开始并以关键字2结束的内容,可独立使用
grep -i -E "^关键字1|关键字2$" 文件名 -v #反向:过滤出不以关键字1开始或不以关键字2结束的内容
grep 关键字 文件名 -c #关键字出现的总行数
grep 关键字 文件名 -n #关键字出现再第几行
2.查找目录中包含某关键字的文件
grep -r 关键字 目录名 #在目录中查找含有某关键字的文件
grep -r 关键字 目录名 -n #关键字出现在哪个文件的第几行
grep -r 关键字 目录名 -c #关键字在目录中各个文家出现的总行数
三、cut命令
1.cut -f #显示指定的列
cut -d : -f <number> 文件名 #指定分隔符是“:”,截取第几列
如:cut -d : -f1 文件名 #从文件中截取第一段
cut -d : -f 1,3 文件名 #截取第1段和第3段
cut -d : -f 1-3 文件名 #截取1到3段
cut -c 1-3 文件名 #截取1到3列字符
cut -d “ “ -f #指定分隔符是空格,截取某些段
四、sort命令--排序
1.sort 文件名 #将文件按第一列字符排序
sort -r 文件名 #将文件按第一列字符倒序排序
2.sort -n 文件名 #将文件内容排序(顺序)
sort -nr 文件名 #将文件按逆序排序
3.sort -u 文件名 #文件内容按第一列字符排序,重复的内容将只显示一次
4.sort 排序方式 文件名 | unip -c #排序,重复的内容只显示一次,并且显示重复个数
其中:uniq -c #删除重复的行,且显示重复次数
5.sort -t 间隔符 -k <number> 排列方式 #以间隔符为间隔,按第几段由某排序方式进行排序
6.sort 排序方式 文件名 | uniq -d #将文件中重复的内容进行排序
uniq -d #显示重复行
7.使用sort来筛选进程信息
五、tr 命令--字符转换
1.将文件中小写转换成小写
tr 'a-z' 'A-Z' < 文件名
2将文件只大写转换成大写
tr 'A-Z' 'a-z' < 文件名
六、sed命令--非交互式转换字符
1.全文的字符转换实现
(1)sed 's/原字符串/新字符串/g' 文件名 ##文件实际内容不改变
sed 's/原字符串/新字符串/g' 文件名 -i ##文件内容改变
(2) sed 's/原字符串/新字符串/' 文件名 ##每行第一次出现的原字符串被转换,实际内容不变
2.文件中多个字符串的转换
(1)sed -e 's/原字符串/新字符串/g' -e 's/原字符串/新字符串/g' 文件名 #文件内容不作更改
-e #表示先执行一条转换命令,再执行下一条转换命令,及完成两条命令连接
(2)sed -e 's/原字符串/新字符串/g' -e 's/原字符串/新字符串/g' 文件名 -i #文件内容被更改
3.非交互式转换字符
vim文件名
s/原字符串/新字符串/
s/原字符串/新字符串/
...
:wq
调用命令格式如下:
sed -f 文件名 需更改的文件名 ##文件内容不作更改
sed -f 文件名 需更改的文件名 -i #文件内容被更改
4.sed '数1,数2/原字符串/新字符串/g' 文件名 #第几行至第几行都被更改
sed -e '数1/原字符串/新字符串/g' -e '数2/原字符串/新字符串/g' -e ... 文件名 #分别更改指定行且内容不作更改
5. sed 数x 文件名 #屏蔽第几行不显示
sed 数d 文件名 #删除第几行
sed -n 数p 文件名 #只显示第几行
sed -n 数1,数2p 文件名 #显示数1至数2行
sed -ne 数1p -ne 数2p -ne ... 文件名 #显示指定的行
七、awk命令
awk-F 间隔符 '{printf $数字}' 文件名 #以空格符为间隔符,显示指定的某列
- Linux 文本处理工具
- Linux 文本处理工具
- linux文本处理工具
- Linux文本处理工具
- Linux 文本处理工具
- Linux命令行文本处理工具
- Linux命令行文本处理工具
- Linux命令行文本处理工具
- Linux命令行文本处理工具
- Linux命令行文本处理工具
- Linux shell 文本处理工具
- Linux命令行文本处理工具
- Linux文本处理工具集锦
- linux之文本处理工具
- Linux 命令行文本处理工具
- Linux的文本处理工具
- linux文本处理工具之sed
- linux文本处理工具之grep
- 一致性哈希算法
- 二分贪心 T题
- setenforce: SELinux is disabled解决办法
- mybatis常见错误(文件配置)
- 表单控件大小
- Linux 文本处理工具
- ubuntu indigo skeleton tracker(骨骼跟踪)
- python使用opencv2人脸识别
- 表单控件状态(禁用状态)
- pandas数据预处理之dataframe的groupby操作
- 1047: 阿姆斯特朗数
- Python:类型
- 18. 4Sum
- opencv(9)---图像基本操作