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

sed 怎么截取特使字符后的数字呀?
文件: AT 0010 + 1 DAYS UNTIL 1200 + 1 DAYS 
  (文件内容也可是:AT 0010 UNTIL 1200 + 1 DAYS )

注: 我可以使文件中的空格去掉的.


取UNTIL后面的数字:
 sed 's/.*UNTIL//g' Timefile  
我把UNTIL 后面的全部显示出来:现在我只想要: 1200, 同样我只要:AT后的内容:0010

不知道怎么办啊,..

------解决方案--------------------
sed -n -e "s;.*UNTIL \(.*\)+.*;\1;p" Timefile
------解决方案--------------------
获取 *UNTIL 以后 +.* 以前的数据。
------解决方案--------------------
joan8363 大哥已经是正解了哦。
tr -d ''<time|sed 's/^AT \([0-9]*\).*UNTIL \([0-9]*\).*/\1 \2/'


[Hsxzhe--22:39:47 sed]$:cat time
AT 0030 +1DAYS UNTIL 0130 +1DAYS
AT 0031 +1DAYS UNTIL 0131 +1DAYS
AT 0032 +1DAYS UNTIL 0132 +1DAYS
AT 0033 UNTIL 0133 +1DAYS
AT 0034 +1DAYS UNTIL 0134 +1DAYS
AT 0035 UNTIL 0135 +1DAYS
AT 0036 +1DAYS UNTIL 0136 +1DAYS
AT 0037 +1DAYS UNTIL 0137 +1DAYS
[Hsxzhe--22:39:50 sed]$:tr -d ''<time|sed 's/^AT \([0-9]*\).*UNTIL \([0-9]*\).*/\1 \2/'
0030 0130
0031 0131
0032 0132
0033 0133
0034 0134
0035 0135
0036 0136
0037 0137
[Hsxzhe--22:39:52 sed]$: