获取unix中两个特定字符之间的字符串

问题描述:

我需要使用unix命令在第二个#到。(点)之间获取字符串。 对于前串TEST#CV01#170403053938.csv 输出应该是170403053938获取unix中两个特定字符之间的字符串

可有一个人请指教如何获得。

试试这个 -

$ echo "TEST#CV01#170403053938.csv"|egrep -o '[[:digit:]]{10,20}' 
170403053938 

OR

$ echo "TEST#CV01#170403053938.csv"|awk -F'[#.]' '{print $3}' 
170403053938 
+0

谢谢第二个是合适的。 – rajabc

+0

@rajabc - 欢迎:) http://*.com/help/someone-answers –

尝试:

A="TEST#CV01#170403053938.csv" 
B=${A##*#} 
echo ${B%%.*} 
我只是用参数扩展在这里得到确切需要的值

+0

谢谢工作正常 – rajabc

可以使用sed(可能是矫枉过正),但为了正则表达式!

echo "TEST#CV01#170403053938.csv"|\ 
    sed -e 's/\(.*#.*#\)\(.*\)\(\.csv\)/\2/'