shell编程——awk

用法
awk 'BEGIN{ commands } pattern{ commands } END{ commands }' [INPUTFILE...]
awk 的输出
( 1 ) print item1 , item2 , ......
各项目之间使用逗号隔开,而输出时则以空白字符分隔;
输出的 item 可以为字符串或数值、当前记录的字段 ( 如 1) 、变量或 awk 的表达式;数值会先转换为 字符串,然后再输出; print 命令后面的 item 可以省略,此时其功能相当于 print 0, 因此,如果想输出空白行,则需要使
用 print " " ;

root@localhost \~\] # awk 'BEGIN { print "line one\\nline two\\nline three"}' line one line two line three \[root@localhost \~\] # awk 'BEGIN{print "This","is","test"}' This is test \[root@localhost \~\] # awk -F: '{print $1,$3}' /etc/passwd \| head -n 3 root 0 bin 1 daemon 2 \[root@localhost \~\] # awk -F: '{printf "%-15s %i\\n",$1,$3}' /etc/passwd \|head -n 3 root 0 bin 1 daemon 2 > 输出重定向 > print items \> output - file > print items \>\> output - file > print items \| command > root@localhost \~\] # awk -F: '{printf "%-15s %i\\n",$1,$3 \> "test1" }' > /etc/passwd ![](https://i-blog.csdnimg.cn/direct/817882a991aa4567a401e670d8e9160d.png) \[root@localhost \~\] # echo "this is" \> test.txt \[root@localhost \~\] # awk 'BEGIN {OFS="#"} {print $1,$2,"a","test"}' test.txt this #is#a#test \[root@localhost \~\] # awk 'BEGIN{print ENVIRON\["PATH"\]}' /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 用户自定义变量 awk 允许用户自定义自己的变量以便在程序代码中使用,变量名命名规则与大多数编程语言相同,只 能使用字母、数字和下划线,且不能以数字开头。 awk 变量名称区分字符大小写。 使用赋值语句进行赋值: \[root@localhost \~\]# awk 'BEGIN{test="hello";print test}' hello 在命令行中使用 -v 选项赋值: \[root@localhost \~\]# awk -v test="hello" 'BEGIN {print test}' hello > # awk命令调用脚本 > > \[root@server \~\]# awk -f test.awk awk2.txt > > \`\`\` > > \`\`\`bash > > # OFS设置输出结果的间隔符为\\t > > \[root@server \~\]# awk -F ":" 'BEGIN {OFS="\\t"} {print $1,$2}' /etc/passwd > > \`\`\` > > \`\`\`bash > > #查看文件中所有空白行的行号 > > \[root@server \~\]# awk '/\^$/{print NR}' /root/anaconda-ks.cfg > \`\`\` ![](https://i-blog.csdnimg.cn/direct/6951668063c445bd93d76320ec9c81b0.png) ![](https://i-blog.csdnimg.cn/direct/426b910dc42f42c392c81f4e16b33d14.png) ![](https://i-blog.csdnimg.cn/direct/30910bacf18249aa9840ab19b3b35545.png) ![](https://i-blog.csdnimg.cn/direct/7e16c0cd341f4e3c8e65713b452876af.png) 用户自定义变量: awk允许用户自定义自己的变量以便在程序代码中使用 变量名命名规则与大多数编程语言相同,只能使用字母、数字和下划线,且不能以数字开头 awk变量名称区分字符大小写 > \[root@server \~l# awk 'BEGIN{test="hello world" ; print test}'#变量定义在BEGIN中 > > hello world > \[root@server \~\]# awk -v test="hello world" BEGIN'{ print test}'# 变量定义在-V参数后, > > hello world

相关推荐
AORO20251 小时前
智能三防手机哪款好?22000mAh+夜视+露营灯打造专业户外装备
服务器·网络·智能手机·电脑·1024程序员节
顾安r1 小时前
11.8 脚本网页 星际逃生
c语言·前端·javascript·flask
Hello.Reader1 小时前
Data Sink定义、参数与可落地示例
java·前端·网络
im_AMBER2 小时前
React 17
前端·javascript·笔记·学习·react.js·前端框架
winner88812 小时前
Linux 软件安装 “命令密码本”:yum/apt/brew 一网打尽
linux·运维·服务器
九河云2 小时前
软件开发平台 DevCloud
运维·服务器·数据库·科技·华为云
firstacui2 小时前
DNS高速缓存&分离解析
服务器
谷歌开发者3 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
一晌小贪欢3 小时前
【Html模板】电商运营可视化大屏模板 Excel存储 + 一键导出(已上线-可预览)
前端·数据分析·html·excel·数据看板·电商大屏·大屏看板
发现你走远了3 小时前
连接模拟器网页进行h5的调试(使用Chrome远程调试(推荐)) 保姆级图文
前端·chrome