linux笔记八(正规表示法与文件格式化处理)
2012-09-06 08:53
155 查看
正规表示法并不是一个工具程序, 而是一个字符串处理的标准依据,如果您想要以正规表示法的方式处理字符串,就得要使用支持正规表示法的工具程序才行, 这类的工具程序很多,例如 vi, sed, awk 等等。正规表示法对于系统管理员来说实在是很重要!因为系统会产生很多的讯息,这些讯息有的重要有的仅是告知, 此时,管理员可以透过正规表示法的功能来将重要讯息撷取出来,并产生便于查阅的报表来简化管理流程。
grep 的一些进阶选项
grep [-A] [-B] [--color=auto] '搜寻字符串' filename
选项与参数:
-A :后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出来;
-B :后面可加数字,为 befer的意思,除了列出该行外,前面的 n 行也列出来;
--color=auto 可将正确的那个撷取数据列出颜色
行首与行尾字符 ^ $
特别注意,因为小数点具有其他意义,所以必须要使用跳脱字符(\)来加以解除其特殊意义!
任意一个字符 . 与重复字符 *
. (小数点):代表『一定有一个任意字符』的意思;
* (星星号):代表『重复前一个 0 到无穷多次』的意思,为组合形态
限定连续 RE 字符范围 {}
基础正规表示法字符汇整 (characters)
![](http://img.my.csdn.net/uploads/201209/06/1346892871_3379.jpg)
![](http://img.my.csdn.net/uploads/201209/06/1346892904_3006.jpg)
![](http://img.my.csdn.net/uploads/201209/06/1346892920_5935.jpg)
强调:『正规表示法的特殊字符』不一般在指令列输入指令的『通配符』并不相同
![](http://img.my.csdn.net/uploads/201209/06/1346892961_2958.jpg)
sed工具
[root@www ~]# sed [-nefr] [动作]
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN
的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过
sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在指令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i :直接修改读取得档案内容,而不是由屏幕输出。
文件的格式化与相关处理
格式化打印:printf
![](http://img.my.csdn.net/uploads/201209/06/1346893000_9286.jpg)
awk:好用的数据处理工具
![](http://img.my.csdn.net/uploads/201209/06/1346893011_8301.jpg)
档案比对工具
diff
diff 就是用在比对两个档案之间的差异的,并且是以行为单位来比对的!一般是用在 ASCII 纯文本档的
比对上。
[root@www ~]# diff [-bBi] from-file to-file
选项与参数:
from-file :一个档名,作为原始比对档案的档名;
to-file :一个档名,作为目的比对档案的档名;
注意,from-file 或 to-file 可以 - 取代,那个 - 代表『Standard input』之意。
-b :忽略一行当中,仅有多个空白的差异 例如 "about me" 与 "about me"视为相同
-B :忽略空白行的差异。
-i :忽略大小写的不同。
cmp
相对于 diff 的广泛用途, cmp 似乎就用的没有这么多了~ cmp 主要也是在比对两个档案,他主要利
用『字节』单位去比对。
[root@www ~]# cmp [-s] file1 file2
选项与参数:
-s :将所有的不同点的字节处都列出来。因为 cmp 预设仅会输出第一个发现的不同点。
patch
patch 指令可以将旧版数据更新到新版 (主要由 diff 建立 patch 的补丁来源档案)
[root@www ~]# patch -pN < patch_file <==更新
[root@www ~]# patch -R -pN < patch_file <==还原
选项与参数:
-p :后面可以接『取消几层目录』的意思。
-R :代表还原,将新的文件还原成原来旧的版本。
档案打印准备:pr
如果我是在 Linux 底下打印纯文本档呢 可不可以具有标题啊?可不可以加入页码啊?呵呵!当然可以啊!使用 pr 就能够达到这个功能了。
基础正规表示法的特殊字符有: *, ?, [], [-], [^], ^, $ 等!
常见的正规表示法工具有: grep , sed, vim 等等
grep 的一些进阶选项
grep [-A] [-B] [--color=auto] '搜寻字符串' filename
选项与参数:
-A :后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出来;
-B :后面可加数字,为 befer的意思,除了列出该行外,前面的 n 行也列出来;
--color=auto 可将正确的那个撷取数据列出颜色
行首与行尾字符 ^ $
特别注意,因为小数点具有其他意义,所以必须要使用跳脱字符(\)来加以解除其特殊意义!
任意一个字符 . 与重复字符 *
. (小数点):代表『一定有一个任意字符』的意思;
* (星星号):代表『重复前一个 0 到无穷多次』的意思,为组合形态
限定连续 RE 字符范围 {}
基础正规表示法字符汇整 (characters)
![](http://img.my.csdn.net/uploads/201209/06/1346892871_3379.jpg)
![](http://img.my.csdn.net/uploads/201209/06/1346892904_3006.jpg)
![](http://img.my.csdn.net/uploads/201209/06/1346892920_5935.jpg)
强调:『正规表示法的特殊字符』不一般在指令列输入指令的『通配符』并不相同
![](http://img.my.csdn.net/uploads/201209/06/1346892961_2958.jpg)
sed工具
[root@www ~]# sed [-nefr] [动作]
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN
的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过
sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在指令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i :直接修改读取得档案内容,而不是由屏幕输出。
文件的格式化与相关处理
格式化打印:printf
![](http://img.my.csdn.net/uploads/201209/06/1346893000_9286.jpg)
awk:好用的数据处理工具
![](http://img.my.csdn.net/uploads/201209/06/1346893011_8301.jpg)
档案比对工具
diff
diff 就是用在比对两个档案之间的差异的,并且是以行为单位来比对的!一般是用在 ASCII 纯文本档的
比对上。
[root@www ~]# diff [-bBi] from-file to-file
选项与参数:
from-file :一个档名,作为原始比对档案的档名;
to-file :一个档名,作为目的比对档案的档名;
注意,from-file 或 to-file 可以 - 取代,那个 - 代表『Standard input』之意。
-b :忽略一行当中,仅有多个空白的差异 例如 "about me" 与 "about me"视为相同
-B :忽略空白行的差异。
-i :忽略大小写的不同。
cmp
相对于 diff 的广泛用途, cmp 似乎就用的没有这么多了~ cmp 主要也是在比对两个档案,他主要利
用『字节』单位去比对。
[root@www ~]# cmp [-s] file1 file2
选项与参数:
-s :将所有的不同点的字节处都列出来。因为 cmp 预设仅会输出第一个发现的不同点。
patch
patch 指令可以将旧版数据更新到新版 (主要由 diff 建立 patch 的补丁来源档案)
[root@www ~]# patch -pN < patch_file <==更新
[root@www ~]# patch -R -pN < patch_file <==还原
选项与参数:
-p :后面可以接『取消几层目录』的意思。
-R :代表还原,将新的文件还原成原来旧的版本。
档案打印准备:pr
如果我是在 Linux 底下打印纯文本档呢 可不可以具有标题啊?可不可以加入页码啊?呵呵!当然可以啊!使用 pr 就能够达到这个功能了。
基础正规表示法的特殊字符有: *, ?, [], [-], [^], ^, $ 等!
常见的正规表示法工具有: grep , sed, vim 等等
相关文章推荐
- 第33周-鸟哥的Linux私房菜基础篇第三版- 第十二章、正规表示法与文件格式化处理
- Linux鸟哥私房菜学习笔记_第十二章 正规表示法与文件格式化处理
- Note For Linux By Jes(6)-正规表示法与文件格式化处理
- 第十二章、正规表示法与文件格式化处理
- 第12章 正规表示法与文件格式化处理
- 鸟哥的Linux私房菜学习笔记(三)学习 Shell 与 Shell scripts——正规表示法与文件格式化处理
- 鸟哥的 Linux 私房菜第12章-正规表示法与文件格式化处理 学习笔记
- 12 正规表示法与文件格式化处理
- 鸟哥的Linux私房菜10.18 正规表示法与文件格式化处理
- 【鸟哥 linux 基础篇】 第12章 正规表示法与 文件格式化处理
- 鸟哥的Linux私房菜(基础篇)- 第十二章、正规表示法与文件格式化处理
- 正规表示法与文件格式化处理
- 第12章、 正规表示法与文件格式化处理
- 第十二章、正规表示法与文件格式化处理
- 12章 正规表示法与文件格式化处理
- 拜师鸟哥之linux学习体会(11)——正规表达法与文件格式化处理
- 鸟哥的Linux私房菜基础学习篇(第三版)之第十二章:正则表示法与文件格式化处理
- 第十二章 正规表达式与文件格式化处理
- 经典算法-对输入文件的格式化处理
- Linux文件格式化与相关处理及sed工具