本章主要讲了基础的正则表达式以及文件格式化处理的指令,如sed.awd等
1、正则表达式是处理字符串的方法,他是以行为单位来进行字符串的处理行为。
2、grep [-A] [-B] '搜索字符串' filename
-A:后面可以跟数字,为after的意思 eg: dmesg | grep -n -A3 -B2 --color=auto 'eth'
-B:后面可以跟数字,为before的意思。
3、[]中无论多少个字符,只能取其中一个。
4、^ 非的意思。如[^a-z]意味着不是小写字母。 [a-z][A-Z][0-9]表示连续的小(大)写字母,数字。
^在[]中表示“非”。如果不在[]中,则意味着行首。
5、在正则表达式中 “.” 代表“一定有一个任意字符”的意思。
“*” 代表“重复前一个0到无穷次”的意思。
“.*”代表零个或者多个任意的字符。
6、限定连续RE字符范围{},但是{与}在shell是有特殊意义的,因此,必须要使用转义字符\来让它失去特殊意义才行。如想找到两个o的字符串 eg. grep -n 'o\{2\}' filename.如果需要一个范围,如包含2-5个o的字符串 grep -n 'o\{2,5\}' filename
7、sed [-nefr] [动作] 动作说明:[n1[,n2]] function
n1、n2不一定会存在,一般代表选择进行动作的行数。 function有一系列的参数 a添加,c替换,d删除,i插入,p打印,s替换。 如 nl /etc/passwd | sed '2,5d' 即将/etc/passwd的内容列出来并且打印行号,同时将2~5行删除。
sed -i 可以直接修改文件内容,有时候可以直接代替vi指令。特别是很大的文件。
8、awk :相比于sed常常用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此awk相当适合处理小型的数据数据处理。
awk '条件类型1{动作1} 条件类型2{动作2}...' filename
awk 主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键或tab键。