awk -v 中的NF
时间: 2024-04-24 17:25:21 浏览: 12
在awk中,NF是一个内置变量,用于表示当前记录(行)中的字段(列)数。通常,NF是一个数字,表示当前记录中的字段数目。在使用awk时,可以使用NF来访问和处理字段。
例如,假设我们有一个包含3个字段的文件,每个字段由空格分隔。我们可以使用以下命令来打印每行的字段数量:
```
awk '{print NF}' file.txt
```
该命令将读取文件"file.txt"的每一行,并打印出该行的字段数量(NF的值)。
希望这能回答您的问题!如果有任何进一步的问题,请随时提问。
相关问题
awk -F: 'NF=2{print $0}' dcpp_xd_db_irm_v_tj_enterprisebuildingcover2_20230422000000.csv
这是一个在 Linux 系统下使用 awk 命令来处理一个 CSV 文件的命令。具体来说,它会以 ":" 作为分隔符,对文件 dcpp_xd_db_irm_v_tj_enterprisebuildingcover2_20230422000000.csv 中每一行进行分割,并只输出有两个字段的行。其中,NF=2 是一个判断条件,表示只有当当前行的字段数目为 2 时才会执行后面的打印命令。$0 表示整行数据,而 $1 和 $2 分别表示第一个和第二个字段。最终输出的结果会是只有两个字段的行的数据。注意,这里在判断条件时应该使用双等号 "== ",而不是赋值符号 "="。
`ps -ef | egrep 'mods.*[0-9].log' | grep -v grep | awk '{for(i=1;i<=NF;i++){if($i~".log$") print $i}}' | awk -F/ '{print $NF}' | sort -n`
`ps -ef | egrep 'mods.*[0-9].log' | grep -v grep | awk '{for(i=1;i<=NF;i++){if($i~".log$") print $i}}' | awk -F/ '{print $NF}' | sort -n` 命令是用来从进程列表中查找包含"mods"且以数字结尾的日志文件,并按照文件名进行排序。
首先,`ps -ef`命令用于列出所有进程的详细信息。然后,通过使用`egrep 'mods.*[0-9].log'`筛选出包含"mods"且以数字结尾的日志文件的进程。接着,通过`grep -v grep`过滤掉含有"grep"的行。然后,使用awk命令`'{for(i=1;i<=NF;i++){if($i~".log$") print $i}}'`,在每一行中查找以".log"结尾的单词并打印出来。接下来,使用`awk -F/ '{print $NF}'`命令,将每个日志文件的路径去除,只保留文件名。最后,使用`sort -n`对文件名进行数字排序。