#2 Linux 文本处理:awk
Linux awk LinuxTextProccessing 2017-10-15awk 的文档写出来可能有一本很厚的书,里面甚至有一种内嵌的解释性编程语言在里面。但是我们普通人就把他当一个小工具,了解一下基础用法就好了,不用深入研究。它的基本功能是将字符串切割之后按照 $1
... $n
来处理,$0
表示整个字符串(整行)。
coding in a complicated world
awk 的文档写出来可能有一本很厚的书,里面甚至有一种内嵌的解释性编程语言在里面。但是我们普通人就把他当一个小工具,了解一下基础用法就好了,不用深入研究。它的基本功能是将字符串切割之后按照 $1
... $n
来处理,$0
表示整个字符串(整行)。
egrep
= grep -E
fgrep
= grep -F
# -G, --basic-regexp 基本正则, 默认
# -E, --extended-regexp 拓展正则
# -P, --perl-regexp Perl 正则
# -w 完全匹配字词
# -x 完全匹配整行
grep markjour /var/log/auth.log
grep -E markjour /var/log/auth.log
# -F, --fixed-strings
grep -F markjour /var/log/auth.log
tail -1000 /var/log/auth.log | grep -Ev 'gnome-keyring-daemon|CRON'
-r
目录-R
目录,处理软链-v
排除-i
忽略大小写 (ignore-case
)-m
控制匹配次数-a
包含二进制内容的文件当作纯文本处理-I
包含二进制内容的文件跳过
-b
输出命中内容的偏移量
-n
输出行号-o
仅输出匹配部分-h
不输出文件名(匹配多个文件时默认输出文件名 -H
)-L
, --files-without-match
仅输出没有匹配的文件名-l
, --files-with-matches
仅输出匹配文件名-c
, --count
仅输出文件名和匹配行数
--include=GLOB
只查找匹配 GLOB(文件模式)的文件
--exclude=GLOB
跳过匹配 GLOB 的文件--exclude-from=FILE
跳过所有匹配给定文件内容中任意模式的文件--exclude-dir=GLOB
跳过所有匹配 GLOB 的目录
-B
, --before-context=NUM
打印文本及其前面NUM 行
-A
, --after-context=NUM
打印文本及其后面NUM 行-C
, --context=NUM
打印NUM 行输出文本-NUM
等同于 --context=NUM