我正在使用以下awk
命令:
my_command | awk -F "[[:space:]]{2,}+" 'NR>1 {print $2}' | egrep "^[[:alnum:]]"
它成功地返回了我的数据,如下所示:
fileName1
file Name 1
file Nameone
f i l e Name 1
所以你可以看到一些文件名有空格。这很好,因为我只是想回显文件名(没什么特别的)。问题是在循环中调用该特定行。我正在尝试这样做:
i=1
for num in $rows
do
fileName=$(my_command | awk -F "[[:space:]]{2,}+" 'NR==$i {print $2}' | egrep "^[[:alnum:]])"
echo "$num $fileName"
$((i++))
done
但我的输出总是null
我也尝试过使用awk -v record=$i
然后打印$record
,但我得到了以下结果。
f i l e Name 1
编辑
很抱歉造成混淆: rows
是一个列出这样的 id 的变量,11 12 13
并且每个这些 id 都与一个文件名相关联。我没有做任何解析的命令如下所示:
id File Info OS
11 File Name1 OS1
12 Fi leNa me2 OS2
13 FileName 3 OS3
我只能使用该id
字段来运行我需要的命令,但我想使用该File Info
字段来通知用户File
正在执行该命令的实际情况。