当我尝试此命令时:
/usr/bin/curl -s sketch*.zip "https://www.sketch.com/downloads/mac/" |\
grep 'download.sketchapp.com/sketch-' | awk 'NR==1{print $3}'输出为:
content="0;URL='https://download.sketchapp.com/sketch-68.2-102594.zip我希望得到的是:
68.2任何帮助都将不胜感激。
发布于 2020-09-15 12:02:29
看起来你想要提取模式后的数字,只对第一个匹配的行。您可以使用一个grep命令:
... | grep -oPm1 '(?<=download.sketchapp.com/sketch-)[^-]+' file或者,由于这是您想要的第一个curl输出行的第三个字段,您可以使用一个awk命令(使用连字符作为分隔符来拆分字段,以数组并打印中间的元素):
awk '/download.sketchapp.com/sketch-/ && NR==1 {split($3,a,"-"); print a[2]; exit}'发布于 2020-09-16 22:34:42
使用sed:
/usr/bin/curl -s sketch*.zip "https://www.sketch.com/downloads/mac/" | \
sed -n 's!.*download.sketchapp.com/sketch-\([^-]*\).*!\1!p;' | \
head -1head是为了消除多个匹配。sed命令提取download.sketchapp.com/sketch-之后的非连字符。
https://stackoverflow.com/questions/63893143
复制相似问题