Linux中的grep、sed、awk使用

grep文本查找工具:全局查找并打印匹配到的行

grep OPTION ‘PATTERN’ FILENAME

选项
-n 显示行号
-i  忽略大小写字母
-v 反向显示不匹配的文本内容
-E使用扩展正则表达式
--color 匹配到的字符串加颜色
sed流编辑器:对文本的行编辑

sed OPTION ‘[[n1],n2]COMMAND’ FILENAME
n1,n2可以是指定的行或者是匹配到的行,匹配字符串/PATTERN/

选项
-n 安静模式,表示处理过的行,默认显示全部文本
-e 执行多条命令
-r 使用扩展正则表达式,默认是基本正则表达式
-i 修改原文件

命令
a 当前行的下方增加一行(a后加" \ "添加内容,\n表示换行)
i 当前行的上方增加一行(同上)
c 替换指定的行(同上)
d 删除指定的行
p 打印,通常和-n一起使用,表示打印处理过的行
s 模式替换,s/PATTERN/STRING/替换每行基本正则表达式匹配到的第一个字符串,s/PATTERN/STRING/g表示全局替换,每行匹配到的字符串都替换。
awk文本处理工具:对文本的行编辑和处理,功能强大,能对文本行和列进行处理

awk FIELD ‘/PATTERN/+COMMAMD’ FILENAME

分割域
-F 'Char' 根据指定的分隔符对文本行进行分割成不同的域,默认分隔符为空格

命令
BEGIN{}文本读取前的处理命令
{}文本读取时的处理命令
END{}文本读取结束的处理命令
括号中可以是print、println、for、if、定义变量等命令

awk的内置变量有NR(行号)、NF(分割域的个数)、FILENAME(当前处理的文件名)等
awk也可以自定义变量,定义数组的索引可以是字符串,也可以是数字,更像HashMap的key
点赞