资料来源
awk知识点总结 | 骏马金龙
精通awk系列 | 骏马金龙
linux awk 命令使用详解 | 元宇宙-Metaverse
Linux awk 命令 | runoob
基础知识
格式化文本文件,对文本文件进行更复杂的加工处理、分析
Awk自动地搜索输入文件,并把每一个输入行切分成字段。许多工作都是自动完成的,例如读取每个输入行、字段分割、存储管理、初始化等。在AWK中不需声明变量数据类型,它内置字符串类型和数值类型。
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
awk -F':' '$7 == "/bin/bash"{print "who use bash shell: ",$1}' /etc/passwd
这个 awk
命令用于查找使用 bash shell 的用户。下面是具体解释:
-F':'
表示使用冒号作为字段分隔符。$7 == "/bin/bash"
表示匹配第 7 个字段等于/bin/bash
的行。{print "who use bash shell: ",$1}
表示打印符合条件的行的第 1 个字段,即用户名,以及带提示信息的字符串 "who use bash shell: "。/etc/passwd
是需要处理的文件路径。
假设有一个/etc/passwd
文件,内容如下:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
testuser:x:1000:1000:testuser:/home/testuser:/bin/bash
结果如下:
who use bash shell: root
who use bash shell: testuser
可以看到,输出了使用 bash shell 的用户,即root和testuser。