2014-03-24 40 views
1

我通过一个命令的输出试图循环搜索数目,例如遍历命令的输出超过50

John 45 
Ted 35 
Eric 65 
Bob 25 
Jeff 50 

它将通过在一次一行循环,将打印一个消息60任何线路,所以埃里克将将被打印出来

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

回答

2

无循环需要作为awk就是这个简单得多:

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

如果有什么命令有多个管道?它不从文件中提取 – user2860658

+0

你能告诉我你尝试过什么命令吗? – anubhava

+0

df -hP | awk {'print $ 1“”$ 5'} | grep'/ dev'| sed“s /%$ //” – user2860658

0

这里是一个纯粹的外壳解决方案,它从文件中读取:如果数据从一个命令来

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

,然后用这种形式:

$ command | while read name age ; do [ "$age" -gt 60 ] && echo $name ; done