【发布时间】:2019-07-08 12:06:33
【问题描述】:
我正在尝试使用下面的命令打印出多个列,但它不起作用。 有人可以检查我缺少什么。
grep -i "$(echo ${vdisk}| awk '{print $1,$2}' 2>/dev/null)" ${GBL_TEMP}/vdisk_*
使用上面的命令,它将打印所有内容,并且不会解析 $1 和 $2
所以我尝试了这个
grep -i "$(echo ${vdisk}| awk '{print $1,$2,$4,$5,$7,$8,$10}' 2>/dev/null)" ${GBL_TEMP}/vdisk_*
但还是没有运气。
我正在尝试打印这些列{print $1,$2,$4,$5,$7,$8,$10}
$vdisk 的输出
745 ptr3p_002 0 io_grp0 online 16 B1_DID_T1N_ABG1 11.00GB striped 745 ptr3p_002 60050768019181B398000000000004DF 0 1 not_empty 0 no 0 16 B1_DID_T1N_ABG1 no no 745 ptr3p_002 master
【问题讨论】:
-
发布
echo ${vdisk}的输出 -
@RomanPerekhrest,将其添加到我的帖子中。
-
我认为你不应该在你的 awk 中添加列,这会改变匹配标准,而应该将
grep(一个完整的行)的输出通过管道传输到另一个awk(或@ 987654328@) 将提取您想要的列。目前我猜你的命令没有输出任何东西,因为文件不包含你的变量的第 1、2、4、5、7、8 和 10 列相邻的行(这是你的 awk 的输出-> grep的匹配条件) -
@Aaron,我尝试使用 grep 然后
>到一个文件。但是,$vdisk 包含多个要在${GBL_TEMP}/vdisk_*中搜索的字符串。不幸的是,我不知道为什么,只有 1 个输出被重定向。 -
您的
awk命令输出745 ptr3p_002 io_grp0 online B1_DID_T1N_ABG1 11.00GB 745。该字符串是您要在${GBL_TEMP}/vdisk_*文件中搜索的内容吗?