我有一个文件,上面写着这样的名字

first middle last     userid
Brian Duke Willy      willybd
...

每当我使用以下
line=`grep "willybd" /dir/names`
name=`echo $line | cut -f1-3 -d' '`
echo $name

它打印了以下内容:
Brian Duke Willy      willybd
Brian Duke Willy

我的问题是,我怎么才能让它只打印“布赖恩杜克威利”,而不首先打印我剪的原始行?

最佳答案

通常的做法是:

awk '/willybd/{ print $1, $2, $3 }' /dir/names

或者,更具体地说
awk '$4 ~ /willybd/ { print $1, $2, $3 }' /dir/names


awk '$4 == "willybd" { print $1, $2, $3 }' /dir/names

10-02 23:42