日期:2014-05-16  浏览次数:20717 次

如何用grep返回以“213 ”开头的行且返回“213 ”以后的字符串?(详见内)
比如in.data文件内容如下
-----------------------
210   HELO
213   12345
323   YES
-----------------------

那么我期望的到的结果是“12345”
如何使用grep来完成,谢过各位大侠!!

注:我尝试使用如下命令但是取不到
ret=`grep   '213   (.*?)$ '`   in.data
echo   $ret

------解决方案--------------------
光grep貌似无法达到这样的目的吧,grep返回的是整行,我也不清楚是否有这样的功能。加上sed就肯定没问题了。
grep '^213 .*$ ' in.data |sed 's/^213 //g '
管道后面的sed的功能是把grep搜索结果中开头的213删掉。
------解决方案--------------------
cat in.datam |grep ^213 |read ret
echo $ret
------解决方案--------------------
用这个试试:
grep ^213 in.data|cut -d ' ' -f 2

ret=`grep ^213 in.data|cut -d ' ' -f 2`
echo $ret