厦门网站设计品牌企业,网站规划建设与管理维护课后答案,订单插件 wordpress,特色专业建设展示网站简单的说#xff0c;正规表示法就是处理字符串的方法#xff0c;他是以行为单位来进行字符串的处理行为#xff0c;正规表示法透过一些特殊符号的辅助#xff0c;可以让使用者轻易的达到【搜寻/删除/取代】某特定字符串的处理程序。
正规表示法基本上是一种【表示法】正规表示法就是处理字符串的方法他是以行为单位来进行字符串的处理行为正规表示法透过一些特殊符号的辅助可以让使用者轻易的达到【搜寻/删除/取代】某特定字符串的处理程序。
正规表示法基本上是一种【表示法】只要工具程序支持这种表示法那么该工具程序就可以用来作为正规表示法的字符串处理之用。例如 vi, grep, awk ,sed 等。
正规表示法的字符串表示方式依照不同的严谨度而分为基础正规表示法与延伸正规表示法。 【正规表示法与通配符是完全不一样的东西】 【通配符(wildcard)代表的是 bash操作接口的一个功能】但【正规表示法则是一种字符串处理的表示方式】。
基本正规表示法
对字符排序有影响的语系数据就会对正规表示法的结果有影响。 正规表示法也需要支持工具程序来辅助才行。
语系对正规表示法的影响
zh Tw.big5 及 C 这两种语系的输出结果分别如下
LANGC 时:0 1 2 3 4 ... A B C D ...Z a b c d ...z
LANGzh_TW 时:0 1 2 3 4 ... a A b B c C d D ... z Z上面的顺序是编码的顺序可以很清楚的发现这两种语系明显就是不一样。 所以使用正规表示法时需要特别留意当时环境的语系为何否则可能会发现与别人不相同的撷取结果。 一些特殊符号
grep 的一些进阶选择
grep [-A] [-B] [--colorauto] 搜寻字符串 filenamegrep 在数据中查寻一个字符串时是以整行”为单位来进行数据的撷取的。也就是说假如一个文件内有10 行其中有两行具有你所搜寻的字符串则将那两行显示在屏幕上其他的就丢弃了。
基础正规表示法字符汇总 正规表示法的特殊字符与一般在指令列输入指令的通配符并不相同 通配符当中的*代表的是【0无限多个字符】的意思但是在正规表示法当中*则是【重复到无穷多个的前一个 RE字符】的意思使用的意义并不相同。
sed 工具
sed 本身是一个管线命令可以分析 standard input 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。
sed [-nefr] [动作]sed后面接的动作,请务必以 两个单引号括住
除了整行的处理模式之外sed还可以用行为单位进行部分数据的搜寻并取代的功能
sed s/要被取代的字符串/新的字符串/gsed 后面学吧。。。
延伸正规表示法
特别强调的是! 在正规表示法当中并不是特殊字符所以如果想要查出来文件中含有!与的字行时可以这样
grep -n [!] regular_express .txt文件的格式化与相关处理
格式化打印printf
printf 可以将资料输出的结果格式化而且支持一些特殊的字符
printf 打印格式 实际内容%8.2f 的意义字符宽度为8小数位有两位。
printf 除了可以格式化处理之外还可以依据 ASCII 的数字与图形对应来显示数据。
awk好用的数据处理工具
相较于 sed 常常作用于一整个行的处理awk 则比较倾于一行当中分成数个【字段】来处理。因此awk 相当的适合处理小型的数据数据处理。
awk 条件类型1{动作1} 条件类型2{动作2} ... filenameawk 后面接两个单引号并加上大括号来设定想要对数据进行的处理动作。awk 可以处理后续接的文件也可以读取来自前个指令的 standard output 。但 awk 主要是处理【每一行的字段内的数据】而默认的【字段的分隔符为空格键或[tab]键】。 在 awk 的括号内每一行的每个字段都是有变量名称的那就是 $1,$2... 等变量名称。
整个 awk 的处理流程是 1.读入第一行并将第一行的资料填入$0,$1,$2…等变数当中 2.依据条件类型的限制判断是否需要进行后面的动作 3.做完所有的动作与条件类型 4.若还有后续的【行】的数据则重复上面1~3的步骤直到所有的数据都读完为止。
awk 是【以行为一次处理的单位】而【以字段为最小的处理单位】
awk 的内建变量
awk 的逻辑运算字符
awk 注意事项 1.awk 的指令间隔所有 awk 的动作亦即在 {} 内的动作如果有需要多个指令辅助时可利用分号【;】间隔或者直接以[Enter]按键来隔开每个指令 2.逻辑运算当中如果是【等于】的情况则务必使用两个等号【】 3.格式化输出时在 printf 的格式设定当中务必加上 \n 才能进行分行 4.与 bash shell 的变量不同在 awk 当中变量可以直接使用不需加上 $ 符号。
文件比对工具
什么时候会用到文件的比对啊?通常是【同一个软件包的不同版本之间比较配置文件与原始档的差异】。很多时候所谓的文件比对通常是用在 ASCII 纯文本档的比对上的。
diff diff 就是用在比对两个文件之间的差异的并且是以行为单位来比对的。一般是用在 ASCII 纯文本档的比对上。由于是以行为比对的单位因此 diff 通常是用在同一的文件(或软件)的新旧版本差异上。
diff [-bBi] from-file to-filecmp cmp主要也是在比对两个文件他主要利用【字节】单位去比对因此当然也可以比对 binary file diff主要是以【行】为单位比对 cmp 则是以【字节】为单位去比对这并不相同
cmp [-l] file1 file2
# -l : 将所有的不同点的字节处都列出来因为 cmp 预设仅会输出第一个发现的不同点patch 旧的文件升级为新的文件先比较先旧版本的差异并将差异档制作成为补丁档再由补丁档更新旧文件。 patch 指令可以将旧版数据更新到新版(主要亦由diff 建立patch 的补丁来源文件)
patch -pN patch_file # 更新
patch -R -pN patch_file # 还原
# -P:后面可以接【取消几层目录】的意思
# -R:代表还原将新的文件还原成原来旧的版本文件打印准备pr可以具有标题可以加入页码。 标题中会有【文档时间】、【文档档名】、【页码】 太多了学不完。。。。
《鸟哥的Linux私房菜-基础篇》学习笔记