Linux命令

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容