2011-03-10 49 views
0

我想从一个参数中提取值,然后将其传送到shell中的另一个命令。Pipable字符串提取

字符串参数可以是零长度或12的倍数(4个字符代码+ 8位数字日期)。例如:

123420110404123520110404123620110404 
500520110404 

输出需要的是每组12个中的前4个字符,或者如果没有输入,则为空字符串(“”)。例如: -

123412351236 
5005 

用例:

[[email protected] abc]$ echo 123420110404123520110404123620110404 | [magic set of manipulation commands] 
123412351236 

注:我已经削减,sed的& Perl安装。我没有安装awk。

+1

什么样的系统已经用sed和Perl但不是在awk? – 2011-03-10 23:32:44

+0

这很奇怪。 – 2011-03-11 03:12:17

+0

我知道。它也缺少其他一些基础知识。唉,我不允许安装其他任何东西,并且要求批准将会比生产更加痛苦。 – 666damo 2011-03-15 22:26:26

回答

3

有一件事我可以想像的是:

echo 123420110404123520110404123620110404 | sed -r 's/(.{4}).{8}/\1/g' 

echo 123420110404123520110404123620110404 | sed 's/\(....\)......../\1/g' 
+0

谢谢你的快速回答。 sed再次闪耀,只是表明它有多强大。 – 666damo 2011-03-10 22:26:31