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

相关推荐
Dontla16 小时前
Tailwind CSS介绍(现代CSS框架,与传统CSS框架Bootstrap对比)Tailwind介绍
前端·css·bootstrap
yinuo16 小时前
uniapp微信小程序安卓手机Touchend事件无法触发
前端
大白的编程日记.16 小时前
【Linux学习笔记】线程概念和控制(三)
linux·笔记·学习
奔跑吧邓邓子17 小时前
【C++实战(63)】C++ 网络编程实战:UDP客户端与服务端的奥秘之旅
网络·c++·udp·实战·客户端·服务端
你的人类朋友18 小时前
【Node】Node.js 多进程与多线程:Cluster 与 Worker Threads 入门
前端·后端·node.js
行云流水剑18 小时前
【学习记录】宝塔面板 + Docker 快速部署 RustDesk 自建远程控制服务器
服务器·docker·开源·p2p·rustdesk
闲人编程18 小时前
使用Celery处理Python Web应用中的异步任务
开发语言·前端·python·web·异步·celery
excel18 小时前
前端读取文件夹并通过 SSH 上传:完整实现方案 ✅
前端
一只游鱼18 小时前
vue+springboot项目部署到服务器
服务器·vue.js·spring boot·部署
L_090718 小时前
【Linux】Linux 常用指令2
linux·服务器