1. grep查找
    grep ‘string’ filename;
    last | grep ‘root’;
    以行为单位。
    应用参数-i(忽略大小写),-v(反相)等开展正则表明式;
    ‘’中可以为正则表明式。
  2. 正则表明特别的
    空行’^$’,即独有行首和行尾;’^a’表示以a初阶,’b$’表示以b结尾。
    *意味器重复前面包车型地铁0个或八个字符;
    a*,aa*,分别相称<space>,a,aa,…和a,aa,aaa…,即aa*相配者必得有三个a;
    .表示除自己外任意字符,\.表示.。
  3. 在shell中{和}具备特别意义,故正则匹配n个字符时,供给转义{和}:
    \{n\}。
  4. []意味着三个:[a]
    减号-表示三番五次:[0-9]
    括号中的^表示反相:[^A-Z],非大写字母。
    伊始时的^表示开始;
  5. sed工具(stream editor)
    sed -e ‘2,5s/A/B/g’,将第2到5行中的A替换为B,/g全体替换。
    s,替换;a,添加;d,删除;c,取代;i,插入;
    A,B能够是正则表明式。
  6. awk命令
    awk管理以空格可能Tab间隔的行内数据;
    last | awk ‘{print $1 “\t”
    $4}’,该命令表示列出登陆客商名和登入星期,两个Tab隔开分离。
    里面$1表示第一块行数据,$2次之块,…,$0表示一切行数据。
    awk有多少个变量:
    NF代表改行有微微字段,即多少列;NGranCabrio表示正在管理的行号;
    FS代表划分字符,默许空格,可以{FS=”:”}修改。
    awk可以拍卖逻辑运算:
    last | awk ‘$1==”ltn” {print $1}’
    输骑行第一字段为ltn的第一地点。
    专心:因为awk先读取第一行,而后管理预设条件等,由此可能率先行是个例外,此时须要先调用BEGIN命令。
  7. 某个发令
    printf,格式输出;
    last最终登陆者,30秒钟自动刷新;
    ifconfig,IP等互联网音讯。
  8. 正如多个文本diff,cmp
    diff text.txt text1.txt,比较详细列举不一致之处,以行作单位;
    cmp text.txt text1.txt,暗许列举第一处分歧,以位作单位。  

一、正则表明式

1、相称字符的品类

  • [a-z]:小写字母
  • [A-Z]:大写字母
  • [a-Z]:小或大写字母
  • [0-9]:数字
  • [a-zA-Z0-9]:表示极其四个为字母或数字的字符
  • . :相称1个随机字符,空格除了这些之外 
  • [0-f]:16进制数
  • abc | def:abc或def
  • a (bc | de) f:abcf 或 adef
  • \<:单词头 单词平时以空格或特殊字符做分隔,一而再的字符串被用作单词
  • \>:单词尾
  • [^表达式]:除小写字母以外的保有字符,如此类推。

2、后跟以下符号调整十分的数量

此类符号的侧边要有地方第一点的表明式

  • 表达式*:0或n个字符
  • 表达式+:1或n个字符
  • 表达式?:0或1个字符
  • 表达式{n}:n个字符
  • 表达式{n:m}:n到m个字符
  • 表达式{n,}:至少n个字符

【例】[a-z]\表示相配0个或八个小写字母*

3、将极度的字符调整在头尾

  • ^表明式:尾部适合
  • 发布式$:尾巴部分适合

 

二、Linux三大文本管理工科具

1、egrep 筛选工具

grep的扩展版,能够采用正则表明式

语法:

egrep -选项  ‘正则表达式’  文件名

选项:

  • -n :展现行号
  • -o :只显示相配的从头到尾的经过
  • -q
    :静默情势,未有别的输出,得用$?来决断实践成功并未有,即有未有过滤到想要的剧情
  • -l
    :假设合作成功,则只将文件名打字与印刷出来,退步则不打字与印刷,常常-rl一齐用,grep
    -rl ‘root’ /etc
  • -A :假若匹配成功,则将相配行及事后n行一齐打字与印刷出来
  • -B :假如匹配成功,则将相称行及其前n行一齐打字与印刷出来
  • -C :假设相称成功,则将相称行及其前后n行一齐打字与印刷出来
  • –color
  • -c :若是相称成功,则将相称到的行数打字与印刷出来
  • -i :忽略大小写
  • -v :取反,不匹配
  • -w:相称单词

2、sed 流编辑器

语法:

语法1:sed  -选项  ‘数字定位+命令’  文件名

选项:

  • -n:静默格局,不出口
  • -e:多项编辑,这几个不是很理解
  • -i:直接更换文件内容,并不是出口
  • -r:扩张形式,可选用正则表明式
  • -f:钦点文件名,将动作写在新的文书内

定位:

①数字定位(输入行序号定位)

  • 1:单行 
  • 1,3:范围 从第一行到第三行
  • 2,+4:相称行后若干行
  • 4,~3:从第四行到下一个3的倍数行
  • 2~3:第二行起每间隔三行的行
  • $:尾行
  • 1!:除了第一行以外的行

【例】sed -n ‘1p’ /etc/passwd

②正则表明式定位

  • 正则必得用//包裹起来
  • 扩张正则须要用 -r 参数或转义
  • 轮换可应用正则表明式的子格局,即小括号(),能够\1、\2代表子形式

【例】sed -r ‘s/(.)(.)/\2\1/ file1
表示将相称到的率先某个和第二有些交替

\贪婪选项:填上g,代表把一行中有所相称项替换*

命令:

  • a ∶ 追加append, 
  • c ∶ 改变change, 
  • d ∶ 删除delete,
  • i ∶ 插入insert, i
    的末端可以接字串,而这个字串会在新的一行出现(方今的上一行)
  • p∶ 列印print
  • s∶ 代替substitute,能够直接实行替换的干活。平日那个 s
    的动作能够搭配正则表明式。举例 1,20s/old/new/g

*s命令非常表达:

行使{命令1:命令2:命令3}可增加使用七个指令

s命令语法:sed  -r  ‘替换命令s/正则表明式/替换内容/贪婪选项g’  文件名

3、awk 文本解析工具

由命令、正则(必要用//包围起来)、相比较和涉及运算组合而成

应用option中的-F参数定义间隔符号

用$1,$2,$3等的一一表示files中每行以间隔符号分隔的各列分化域,NF变量表示近年来记下的字段数

语法

awk -选项 参数  ‘逻辑决断{命令 变量1,变量2,变量3}’ 文件名

选项

  • -F 定义字段分隔符,默许的相间符是三回九转的空格或制表符
  • -v 定义变量并赋值 也能够借用次艺术从shell变量中引进

AWK变量

  • NWrangler 当前记录的个数(全体文件一连后的总括)
  • FNLacrosse 当前记下的个数(仅为这段日子文件的总计,非全体)
  • FS 字段分隔符 默以为三番五次空格或制表符,能够运用四个例外的标识做分隔符
    -F[:/]
  • OFS 输出字符的相间符 暗中认可是空格

【OFS例】

# awk -F: ‘OFS=”=====” {print $1,$2}’ /etc/passwd
root=====x

  • NF 当前读入行的字段个数
  • O讴歌MDXS 输出记录分隔符 暗许是换行

【ORS例】

# awk -F: ‘ORS=”=====” {print $1,$2}’ /etc/passwd
root x=====bin x=====

  • FILENAME 当前文件名

【例1】使用AWK变量
# awk ‘{print NR,FNR,$1}’ file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
# 

【例2】引用shell变量的办法

# a=root
# awk -v var=$a -F: ‘$1 == var {print $0}’ /etc/passwd
照旧 把方方面面命令拆开传递,让shell变量外露,
# awk -F: ‘$1 == “‘$a'” {print $0}’ /etc/passwd
# a=NF
# awk -F: ‘{print $’$a’}’ /etc/passwd

 

逻辑运算(可径直引用域进行演算)

  • = += -= /= *=:赋值
  • && || !:逻辑与 逻辑或 逻辑非
  • ~ !~:相称正则或不相称,正则须要用 /正则/ 包围住
  • < <= > >= !=
    ==:关系,比较字符串时要把字符串用双引号引起来
  • $:字段引用供给加$,而变量引用直接用变量名取
  • + – * / % ++ –:运算符

转义体系

  • \\ \自身
  • \$ 转义$
  • \t 制表符
  • \b 退格符
  • \r 回车符
  • \n 换行符
  • \c 撤除换行

  

有不当请指正,更加多详细资料参照他事他说加以考察:

http://www.cnblogs.com/linhaifeng/p/6596660.html\#\_label3

网站地图xml地图