2013-03-25 40 views
-2

以下是我的代码:如何在我的ksh脚本中使用grep列?

#!/bin/ksh -p 
NAME=$1 
echo $NAME likes to drink: 
grep $NAME ~/practice/database/likes 
echo total number of beers $NAME likes to drink: 
grep $NAME ~/practice/database/likes | wc -l 

以下是我的输出:

dave likes to drink: 
dave,coors 
dave,bud 
total number of beers dave likes to drink: 
     2 

如何我只输出 “库尔斯” 和 “芽”?

+0

这是什么都用vi做? – gpojd 2013-03-25 20:17:55

+0

因为这个脚本在vi中 – 2013-03-25 20:43:41

+0

从它的外观来看它是ksh。 – 2013-03-25 20:50:27

回答

1

你可以尝试这样的事情:

grep $NAME ~/practice/database/likes | awk -F, '{ print $2 }' 

grep $NAME ~/practice/database/likes | cut -d , -f 2 

man awk

man cut

+1

谢谢。第二个声明是我正在寻找的原始声明...我会为你投票,但是没有15声望呢......刚刚开始UNIX和这个账户......我只是一个学者 – 2013-03-25 21:50:12

0

如果使用sed那么你只需要一个程序:

sed 's/'$NAME',//' ~/practice/database/likes 

或者你可以使用awk,但不要因为awk能够定期expresions,以及使用grep

awk -F, '/'$NAME'/{ print $2 }' ~/practice/database/likes 
+0

我没有15声望我不能投票给你。第二个陈述奏效。第一个没有工作。谢谢你的帮助。 – 2013-03-25 20:54:10

+0

@JeffOrris:当你尝试第一个陈述时究竟发生了什么? – cdarke 2013-03-26 07:40:49