awk: cmd. line:1: {if($1 ~ /^admin/) admin++ else if($1 ~ /^sys/) sys++ else normal++} END{print "管理员个数:", admin, "\n普通用户个数:", normal, "\n系统用户个数:", sys} awk: cmd. line:1: ^ syntax error awk: cmd. line:1: {if($1 ~ /^admin/) admin++ else if($1 ~ /^sys/) sys++ else normal++} END{print "管理员个数:", admin, "\n普通用户个数:", normal, "\n系统用户个数:", sys} awk: cmd. line:1: ^ syntax error
时间: 2023-11-27 21:51:27 浏览: 70
这是一个awk命令,用于统计用户类型的数量。但是,根据错误提示,“^”符号前面缺少一个空格,你可以尝试将其添加到第一个正则表达式之前,即“/^admin/”和“/^sys/”之前。修改后的命令应该是这样的:
```
awk '{if($1 ~ /^admin/) admin++ else if($1 ~ /^sys/) sys++ else normal++} END{print "管理员个数:", admin, "\n普通用户个数:", normal, "\n系统用户个数:", sys}'
```
这个命令将会逐行读取输入文件,并检查每行的第一个字段是否以“admin”、“sys”或其他开头。然后它将记录每一种类型的用户数量,并在结束时打印出来。
相关问题
[DuYD@node01 JN_1901]$ awk -F ',' 'FNR==1{print; next} {if ($5 ~ \/Analysis_B\/20220326_JNILI\/014_seqtk\/005_V2_content\/JN_1901_content\/) print}' \/Analysis_B\/20220326_JNILI\/014_seqtk\/006_new_filenames\/JN_1901.csv awk: cmd. line:1: FNR==1{print; next} {if ($5 ~ \/Analysis_B\/20220326_JNILI\/014_seqtk\/005_V2_content\/JN_1901_content\/) print} awk: cmd. line:1: ^ backslash not last character on line awk: cmd. line:1: FNR==1{print; next} {if ($5 ~ \/Analysis_B\/20220326_JNILI\/014_seqtk\/005_V2_content\/JN_1901_content\/) print} awk: cmd. line:1: ^ syntax error
你需要将斜杠 `/` 转义为 `\/`,而不是在斜杠前加上反斜杠。另外,你的命令最后的路径也需要进行转义。
以下是修改后的命令:
```
awk -F ',' 'FNR==1{print; next} {if ($5 ~ /Analysis_B\/20220326_JNILI\/014_seqtk\/005_V2_content\/JN_1901_content\//) print}' /Analysis_B/20220326_JNILI/014_seqtk/006_new_filenames/JN_1901.csv
```
其中,`\/` 表示一个斜杠,`\` 用于转义。你需要将命令中的路径都修改为这种形式。
[DuYD@node01 JN_1901]$ awk -F ',' 'FNR==1{print; next} {if ($5 ~ /Analysis_B/20220326_JNILI/014_seqtk/005_V2_content/JN_1901_content/) print}' /Analysis_B/20220326_JNILI/014_seqtk/006_new_filenames/JN_1901.csv awk: cmd. line:1: FNR==1{print; next} {if ($5 ~ /Analysis_B/20220326_JNILI/014_seqtk/005_V2_content/JN_1901_content/) print} awk: cmd. line:1:
看起来你的命令出现了语法错误,错误信息显示在第三行。可能是因为命令中使用了多个路径,而路径中包含了斜杠 `/`。这个问题可以通过在斜杠前加上反斜杠 `\` 来解决。例如:
```
awk -F ',' 'FNR==1{print; next} {if ($5 ~ /Analysis_B\/20220326_JNILI\/014_seqtk\/005_V2_content\/JN_1901_content/) print}' /Analysis_B/20220326_JNILI/014_seqtk/006_new_filenames/JN_1901.csv
```
其中,`\/` 表示一个斜杠,`\` 用于转义。你需要将命令中的路径都修改为这种形式。
阅读全文