Bash 循环执行命令的输出,搜索超过50的数字

Bash 循环执行命令的输出,搜索超过50的数字,bash,Bash,例如,我试图循环一个命令的输出 John 45 Ted 35 Eric 65 Bob 25 Jeff 50 它将一次循环一行,它将为超过60行的任何行打印一条消息,因此Eric将被打印出来 /dev/mapper/vg_bob-lv_root 31 /dev/sda1 12 /dev/sdb1 2 无需循环,因为awk更简单: awk '$2>60{print $1}' file Eric 下面是一个纯shell解决方案,它从文件中读取: $ while read name age

例如,我试图循环一个命令的输出

John 45
Ted 35
Eric 65
Bob 25
Jeff 50
它将一次循环一行,它将为超过60行的任何行打印一条消息,因此Eric将被打印出来

/dev/mapper/vg_bob-lv_root 31
/dev/sda1 12
/dev/sdb1 2

无需循环,因为
awk
更简单:

awk '$2>60{print $1}' file
Eric

下面是一个纯shell解决方案,它从文件中读取:

$ while read name age ; do [ "$age" -gt 60 ] && echo $name ; done<file
Eric

如果该命令有多个管道怎么办?它不是从文件中提取的df-hP | awk{'print$1'$5'}grep'/dev''sed“s/%$/”您可以使用:
df-hP{'awk{'print$1'$5'}sed“s/%$/”\124; awk'/\/dev/&$2>60{print$1}
您可以将
df hP{awk{print$1'$5'/sed的输出粘贴到您的注释中吗好的,但是在您的输出中没有记录
>60
,所以awk显然不会打印任何内容。将60降低到30,您将在输出中看到
/dev/mapper/vg_bob-lv_root
$ command | while read name age ; do [ "$age" -gt 60 ] && echo $name ; done