awk使用

#获取IP地址
ifconfig |grep "inet addr" |sed 's/ \+/ /g' |cut -d " " -f3 |cut -d ":" -f2
ifconfig |grep "inet addr" |awk -F '[ :]+' '{print $4}'
ifconfig |grep "inet addr" |awk 'BEGIN{FS="'"[ :]+"'"} {print $4}'
172.17.0.2
127.0.0.1

#获取zookeeper存储dir
echo "dataDir=/zookeeper/" |grep dataDir= |cut -d "=" -f2 |sed 's/\/$//'
/zookeeper

#server. = :三个分隔符
echo "server.0=10.100.1.25:22886:23886" |grep "server." |awk -F 'server.|=|:' 'BEGIN{OFS=","}{print $2, $3}'
0,10.100.1.25
filter="\"|\\\\|\+|'|&|>|<"
a="+\\'\""
echo "$a" |egrep $filter
+\'"

echo 'retcode[ERR1] = "错误1..";' | awk -F '\\[|\\]|"' '{print $1"["$2"]"$3"getString("$2") + \": "$4"\";"}'
echo 'retcode[ERR1] = "错误1..";' | awk -F '\\[|\\]' '{sub(/"/, "getString("$2") + \": ")} { print}'
retcode[ERR1] = getString(ERR1) + ": 错误1..";

查看文件指定行范围

#eg. 查看100行前后各10行文件内容
awk 'NR==100-10,NR==100+10 {print NR, $0}' filename

参考:

Linux命令(36)——awk命令
Linux awk 命令

 
喜欢 0
分享