我尝试使用以下代码解析日志文件:
if [[ $line -match "=====.*" ]]; then
awk $2 = $vFiler;
echo "$vFiler";
解释:
有一些行以这样的模式开头=====
或“vol/...”后跟名称
我想找到所有以=====
或 'vol/...' 并将后面的字符串设置为等于变量,但我真的很难做到这一点,我想到了 awk 的 if 命令(我知道 -match 不是真正的命令)。
输入看起来像这样:
===== vfiler0
/vol/vol0
===== vFiler1
/vol/vol1
输出应该是:
vFiler, Type
vFiler0, /vol/vol0
vFiler1, /vol/vol1
你们能帮我吗?我正在尝试在 bash 脚本中执行此操作
是否有可能像我上面尝试的那样得到“如果...”?
我会使用以下内容:
awk -v RS="=====" -v OFS="," 'BEGIN {print "vFiler", "Type" } NF{print $1, $2}' file
它返回:
vFiler,Type
vfiler0,/vol/vol0
vFiler1,/vol/vol1
我们所做的是将记录分隔符设置为=====
。这样,一个块====
每次都会处理。然后,每当至少有一个(NF
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)