AWK - 行文本处理工具
原理: 逐行处理文本数据
语法: awk 'pattern + {action}'
单引号用于区分shell命令
{}是 命令分组, action是处理动作, 默认action 是 print
只有满足pattern才会action, pattern 和action 可以只有一个
cat test.txt | awk 'NR==3, NR==5{print;}'
cat test.txt | awk '/34567/' /pattern/-->正则匹配
内置变量
FS 分隔符,默认空格
NR当前行数,从1开始
NF 当前记录字段个数
$0 当前记录
$1 ~ $n 当前记录的第n个字段
cat test.txt | awk 'NR==3, NR==5{print $1,$NF}'
内置函数
gsub(r,s) 在$0用s替换r
index(s,t)
length(s)
match(s,r)
sed - 行编辑器,一次处理一行内容
语法
sed [options] 'command' file
sed [options] -f scriptfile file
sed -n p test.txt -n 关闭自动打印 (sed 处理前会自动打印)
定位
sed -n '2,$'p test.txt 打印第二到最后一行
sed -n '/234567/'p test.txt
sed -n '1348622,$'p ces-txn.log > ces-txn_latest.log
命令
a\ 在匹配行后面加一行文本
sed -n '/1234567/'a\ "new line" test.txt
网友评论