linux三剑客:awk,sed,grep
他们都是处理文件的有力助手,配上正则表达式非常强大
一、awk(取列,取行,计算等)
用法:awk [options] ‘program’ file
options:-f 指定分隔符分隔每行内容
-v 定义或修改一个awk的内部变量
分割后列表示:
$0 一整行内容
$1 按分隔符分隔的第一个内容
NF 最后一列
$(NF-n) 倒数第n列
NR 表示行号
例:取文件每行前4个字符
awk -F '分隔符' '{print substr($1,0,4)}' 文件.txt
awk命令详解
https://www.cnblogs.com/xudong-bupt/p/3721210.html
二、sed
用法:sed [option]… ‘script’ inputfile
option
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i 直接编辑文件
-i.bak 备份文件并原处编辑
例:将制表符替换为逗号,全局
sed 's/[/t]/,/g' 文件.txt
sed命令详解
https://www.cnblogs.com/ctaixw/p/5860221.html
三、grep
用法:grep [options] ‘script’
--color=auto 对匹配到的文本着色显示
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE,相当于egrep
-F 相当于fgrep,不支持正则表达式