对于awk使用多个分隔符和使用外部变量,个人感觉以前理解有点错了,理解难了,总感觉有点困惑,整理了下,预防以后又被人问倒了。
1: awk可以指定多个字符作为分隔符
echo "hello world and hello world2" |awk -F'and' '{print $1,$2}'
输出:hello world hello world2
2: awk指定多个分隔符
echo "hello worldandhello world2" |awk -F'and| ' '{print $1,$2,$3}'
输出:hello world hello
3: awk传递变量
echo "get /index.html 200 get /index.jsp 500" | awk '{if($1~my_func && $3~my_status){print $0}}' my_func=get my_status=200
输出:get /index.html 200 get /index.jsp 500
以前总是用awk '$1~/get/'这样子来匹配,然后想传变量进去都不行,可以是自己理解错了,//中间的应该放的是字符串的。
4: awk指定[]两个分隔符
awk -F'[][]' 这个比较特殊,不知道为什么,但先记录了。
最后附上本人的网络课堂地址,如有兴趣请点击: 实践哥