grep & awk
==============================
grep [选项]基本正则表达式[文件]
1. 选项
-c 只输出匹配行的计数
-i 不区分大小写(单字符)
-h 不显示文件名(多文件时)
-l 只输出文件名(多文件时)
-n 显示匹配行及行号
-s 不显示错误信息
-v 显示不包含匹配文本的所有行
2. 查询多个文件
grep "sort" *.doc
grep "sort" *
3. 使用正则表达式,最好用''单引号括起来
grep '[Ss]ort' *.doc
4. 可以使用管道命令,| 左边的输出为右边的输入
grep '[Ss]ept' data.f | grep 483
awk
==============================
有三种方式调用awk
1. 命令行方式
awk [-F field-separator] 'commands' input-file(s)
// [-F 域分隔符]是可选的,因为awk使用空格作为缺省的域分隔符,如果域中有空格,不必指定这个选项,但是,例如passwd文件,域分隔符是:,所有必须指定-F选项。如:
// awk -F: 'commands' input-file
2. 写入shell文件中
3. 写入单独的文件,然后调用:
awk -f awk-script-file input-files(s)
// -f指明在文件awk-script-file中的awk脚本
4. 动作必须用{}括起来
--------------------------------
1. $1 $2 ... $n 表示各个域, $0 表示所有域
2. 正则表达式用 / / 包含起来: /正则表达式/
3. ~ 匹配 !~ 不匹配
4. if() 后面用(), 可以用 < <= > >= != && ||
//
// awk '{ if($4=="Yellow" && $2~/[Gg]reen/) }' filename
//
---------------------------------