题目

[root@OldboyEdu oldboy# cat ip.log 
10.0.0.1 oldboy
10.0.0.2 oldgirl
10.0.0.3 bingbing
10.0.0.4 tingting
10.0.0.4 oldboy

打印第二列为oldboy行的第一列内容

参考答案

方法一:while循环

cat match.shwhile read line
do
    name=`echo $line|awk '{print $2}'`    
    if [ "$name" = "oldboy" ];then        
    echo $line|awk '{print $1}'    
    fi
done </oldboy/ip.log

方法二:grep

[root@show oldboy]# grep -Po "\S+\s(?=oldboy)"  ip.txt 
10.0.0.1 
10.0.0.4 
[root@show oldboy]# grep -Po "[0-9. ]+(?=oldboy)"  ip.txt 
10.0.0.1 
10.0.0.4

方法三:sed

sed -nr '/oldboy/s#(^[^ ]+).*$#\1#gp' ip.sh

方法四:awk

awk '$2~/oldboy/{print $1}' ip.sh

备注

今天是每日一题陪伴大家的第92天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引

http://lidao.blog.51cto.com/3388056/1914205