当前位置: 技术问答>linux和unix
如何用grep返回以“213 ”开头的行且返回“213 ”以后的字符串?(详见内)
来源: 互联网 发布时间:2016-01-20
本文导语: 比如in.data文件内容如下 ----------------------- 210 HELO 213 12345 323 YES ----------------------- 那么我期望的到的结果是“12345” 如何使用grep来完成,谢过各位大侠!! 注:我尝试使用如下命令但是取不到 ret=`grep '213 (.*?)$'`...
比如in.data文件内容如下
-----------------------
210 HELO
213 12345
323 YES
-----------------------
那么我期望的到的结果是“12345”
如何使用grep来完成,谢过各位大侠!!
注:我尝试使用如下命令但是取不到
ret=`grep '213 (.*?)$'` in.data
echo $ret
-----------------------
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删掉。
grep '^213 .*$' in.data |sed 's/^213 //g'
管道后面的sed的功能是把grep搜索结果中开头的213删掉。
|
用这个试试:
grep ^213 in.data|cut -d ' ' -f 2
或
ret=`grep ^213 in.data|cut -d ' ' -f 2`
echo $ret
grep ^213 in.data|cut -d ' ' -f 2
或
ret=`grep ^213 in.data|cut -d ' ' -f 2`
echo $ret
|
cat in.datam |grep ^213 |read ret
echo $ret
echo $ret