我想提取字符串的某个部分(如果存在)。我对xml文件名感兴趣,即我想要“_”和“.xml”之间的什么。bash脚本中的sed regexp
这是确定,它打印“555”
MYSTRING=`echo "/sdd/ee/publ/xmlfile_555.xml" | sed 's/^.*_\([0-9]*\).xml/\1/'`
echo "STRING = $MYSTRING"
这也不行,因为它返回整个字符串。在这种情况下,我不想要任何结果。 它打印“/sdd/ee/publ/xmlfile.xml”
MYSTRING=`echo "/sdd/ee/publ/xmlfile.xml" | sed 's/^.*_\([0-9]*\).xml/\1/'`
echo "STRING = $MYSTRING"
任何想法如何得到一个“空”的结果在第二种情况下。
谢谢!
太棒了!谢谢! – Jojje 2010-06-29 11:56:36
你可能也想逃避最后的'''.' – 2010-06-29 12:21:06
@Douglas:真的,我没有注意到(这就是为什么你不复制和粘贴代码;-) – 2010-06-29 18:03:55