我从SVG文件grep这个字符串:
<g transform="translate(0.000000,980.000000) scale(0.100000,-0.100000)"
我希望在bash脚本变量中获得数字980
。我的问题是我没有设法管道正确的表达式只从字符串中获取该数字980
。我需要补充一点,当然,数字980
可以是任意长度的任意数字(例如,5967
或98
...)。
你能给我一个解决方案吗?我被困在那里......
答案 0 :(得分:4)
假设您的SVG输入文件为input.svg
。你应该试试:
cat input.svg | grep translate | sed 's/^.*translate(.*,\(.*\)\..*) scale.*$/\1/'
答案 1 :(得分:0)
根据我的理解,你可以使用awk。
grep whatever | awk -F"," '{print $2}' | awk -F"." '{print $1}'
答案 2 :(得分:0)
不需要多个简单的命令:
awk -F"[,.]" '/your_search_string/{print $3}'
HTH Chris
答案 3 :(得分:0)
只是bash,我假设您希望第二个参数为“translate()”
$ line='<g transform="translate(0.000000,980.000000) scale(0.100000,-0.100000)"'
$ num=${line#*translate*,}; echo $num
980.000000) scale(0.100000,-0.100000)"
$ num=${num%%.*}; echo $num
980
答案 4 :(得分:0)
这可能对您有用:
sed '/^<g transform/!d;s/[^,]*,//;s/[^0-9].*//