所以我有一个命令,可以在找到主机时打印出来。
awk -v IGNORECASE=1 -v m="$host" '$2~m {p=1} NF>2 && $2!~m {p=0} p' ${TEMP}/*
这是它的结果
33 VMME87 VMware 51402EC000CF2732 3:0:2
51402EC000CF2730 3:0:1
51402EC000CF2730 2:0:1
51402EC000CF2732 2:0:2
83 VMME87 VMware 51402EC000CF2732 1:2:4
51402EC000CF2730 1:2:3
51402EC000CF2730 0:2:3
51402EC000CF2732 0:2:4
但是,是否还可以将文件名打印到找到的位置?
大概是这样的:
**Name of the file**
33 VMME87 VMware 51402EC000CF2732 3:0:2
51402EC000CF2730 3:0:1
51402EC000CF2730 2:0:1
51402EC000CF2732 2:0:2
echo (space)
**Name of the file**
83 VMME87 VMware 51402EC000CF2732 1:2:4
51402EC000CF2730 1:2:3
51402EC000CF2730 0:2:3
51402EC000CF2732 0:2:4
如果我使用grep
,它会打印文件名,但不会打印最后一列。
Name of the file 33 VMME87 VMware 51402EC000CF2732 3:0:2
答案 0 :(得分:2)
当前文件名在FILENAME
变量中可用。更改此部分
{p=1}
到
{p=1; print FILENAME}
如果只希望文件名不带路径,请使用:
{p=1;sub(/^.*\//,"",FILENAME);print FILENAME}