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

相关推荐
CF14年老兵7 分钟前
「Vue 3 + View Transition 实现炫酷圆形缩放换肤动画」
前端·css·trae
十五年专注C++开发9 分钟前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
拾心2111 分钟前
【运维进阶】Ansible 角色管理
运维·ansible
小璞22 分钟前
05_CursorRules_代码审查篇_Rule_code-review
前端
前端小书童24 分钟前
前端开发中的css:「ink → Bootstrap → 预处理器 → Tailwind → UnoCSS」
前端·css
萌萌哒草头将军25 分钟前
有了它 ,我彻底告别了 try-finally 🔥🔥🔥
前端·javascript·vue.js
冬至z25 分钟前
Vue 2 项目中快速集成 Jest 单元测试(超详细教程)
前端·单元测试
小璞26 分钟前
03_CursorRules_UI还原篇_Rule_ui-restoration
前端
小璞27 分钟前
01_CursorRules_需求理解篇_Rule_requirement-understanding
前端