千家信息网

Linux正则表达式与文件格式化处理

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本篇内容主要讲解"Linux正则表达式与文件格式化处理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux正则表达式与文件格式化处理"吧!正则表达式与
千家信息网最后更新 2024年11月14日Linux正则表达式与文件格式化处理

本篇内容主要讲解"Linux正则表达式与文件格式化处理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux正则表达式与文件格式化处理"吧!

正则表达式与文件格式化处理

基础正则表达式字符汇整 (characters)

sed 工具

sed 本身也是一个管线命令,可以分析 standard input 的啦! 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能呢。

范例一:将 /etc/passwd 的内容列出并且打印行号,同时,请将第 2~5 行删除!

[dmtsai@study ~]$ nl /etc/passwd | sed '2,5d'1 root:x:0:0:root:/root:/bin/bash6 sync:x:5:0:sync:/sbin:/bin/sync7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
文件的格式化与相关处理

格式化打印: printf

范例一:将刚刚上头数据的文件 (printf.txt) 内容仅列出姓名与成绩:(用 [tab] 分隔)[dmtsai@study ~]$ printf '%s\t %s\t %s\t %s\t %s\t \n' $(cat printf.txt)Name Chinese English Math AverageDmTsai 80 60 92 77.33VBird 75 55 80 70.00Ken 60 90 70 73.33
awk:好用的数据处理工具

awk 也是一个非常棒的数据处理工具!相较于 sed 常常作用于一整个行的处理, awk 则比较 倾向于一行当中分成数个"字段"来处理。因此,awk 相当的适合处理小型的数据数据处理呢! awk 通常运行的模式是这样的:

[dmtsai@study ~]$ awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

若我想要取出帐号与登陆者的 IP ,且帐号与 IP 之间以 [tab] 隔开,则会变成这样:

[dmtsai@study ~]$ last -n 5 | awk '{print $1 "\t" $3}'dmtsai 192.168.1.100dmtsai 192.168.1.100dmtsai 192.168.1.100dmtsai 192.168.1.100dmtsai Fri
文件比对工具
diff
范例一:比对 passwd.old 与 passwd.new 的差异:[dmtsai@study testpw]$ diff passwd.old passwd.new4d3 <==左边第四行被删除 (d) 掉了,基准是右边的第三行< adm:x:3:4:adm:/var/adm:/sbin/nologin <==这边列出左边(<)文件被删除的那一行内容6c5 <==左边文件的第六行被取代 (c) 成右边文件的第五行sync:x:5:0:sync:/sbin:/bin/sync <==左边()文件第六行内容> no six line <==右边(>)文件第五行内容

#很聪明吧!用 diff 就把我们刚刚的处理给比对完毕了!

patch patch 这个指令与 diff 可是有密不可分的关系啊!我们前面提到,diff 可以用来分辨两个版本 之间的差异, 举例来说,刚刚我们所创建的 passwd.old 及 passwd.new 之间就是两个不同版 本的文件。 那么,如果要"升级"呢?就是"将旧的文件升级成为新的文件"时,应该要怎么做 呢? 其实也不难啦!就是"先比较先旧版本的差异,并将差异档制作成为补丁文件,再由补丁 文件更新旧文件"即可。

到此,相信大家对"Linux正则表达式与文件格式化处理"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0