awk –F: ‘BEGIN{printf “username\n-------\n”}\ { print $1 }\ END {print “----------“ }’ /etc/passwd执行语句
时间: 2023-10-08 12:07:15 浏览: 99
这是一条 Linux 命令,用于在命令行界面中打印出系统中所有的用户名。具体来说,该命令通过读取 /etc/passwd 文件中的内容来获取系统中所有用户的信息,其中用户信息的字段是用冒号分隔的。选项 -F 表示分隔符,此处指定为冒号。接着,使用 BEGIN 语句输出表头,使用 END 语句输出表尾,最后打印出所有用户名。注意,END 语句应该用大写字母。
相关问题
awk 'BEGIN {FS="\t"} {print $4}' tags | awk -F'[(]' '{print $1}' | uniq | xargs -I '{}' sh -c "echo -n '{}: '; awk '/^{}(/, /{/' {} | wc -l" 报错 awk: line 0: regular expression compile failed (missing ')')
这个命令的问题在于 `{` 和 `(` 是正则表达式中的特殊字符,需要进行转义才能正常匹配。
可以尝试修改成这样:
```
awk 'BEGIN {FS="\t"} {print $4}' tags | awk -F'[(]' '{print $1}' | uniq | xargs -I '{}' sh -c "echo -n '{}: '; awk '/^{}\\(/, /\\/{/' {} | wc -l"
```
在正则表达式中,`\\(` 和 `\\)` 表示匹配 `(` 和 `)` 字符,而不是正则表达式中的特殊字符。这样修改后,应该就可以正常运行了。
阅读全文