获取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
答
尝试:
A="TEST#CV01#170403053938.csv"
B=${A##*#}
echo ${B%%.*}
我只是用参数扩展在这里得到确切需要的值
。
+0
谢谢工作正常 – rajabc
答
可以使用sed
(可能是矫枉过正),但为了正则表达式!
echo "TEST#CV01#170403053938.csv"|\
sed -e 's/\(.*#.*#\)\(.*\)\(\.csv\)/\2/'
谢谢第二个是合适的。 – rajabc
@rajabc - 欢迎:) http://stackoverflow.com/help/someone-answers –