如何清理/格式化awk输出?

时间:2019-04-10 13:49:59

标签: macos curl awk grep

尝试仅获取最新的版本号,该版本号始终位于ftp://ftp.adobe.com/pub/adobe/reader/mac/AcrobatDC/的“ misc”后面

我也许可以通过使用“剪切”来解决此问题,但是如果时间是x:xx,则它可能无法使用下一个最新版本。

当前代码:

latestver=`/usr/bin/curl -s -L "ftp://ftp.adobe.com/pub/adobe/reader/mac/AcrobatDC/" | /usr/bin/awk '/misc/ {print a}{a=$0}'`
    echo "Latest Version is: $latestver"

输出:

Latest Version is: drwxrwxr-x    2 ftp      ftp           142 Apr 01 11:13 1901020099

预期输出:

Latest Version is: 1901020099

3 个答案:

答案 0 :(得分:2)

这应该做:

latestver=$(curl -s -L "ftp://ftp.adobe.com/pub/adobe/reader/mac/AcrobatDC/" | awk '$NF=="misc" {print f} {f=$NF}')
echo "$latestver"
1901020099

工作原理:

  • $NF=="misc"测试最后一个字段是否为misc
  • {print f}然后显示变量f
  • 中的内容
  • {f=$NF}f设置为最后一个字段。

由于f是在测试后设置的,因此它将始终具有您要查找的先前值。

答案 1 :(得分:0)

请您尝试以下操作(由于无法测试卷曲,因此未测试)。

latestver=$(/usr/bin/curl -s -L "ftp://ftp.adobe.com/pub/adobe/reader/mac/AcrobatDC/" | /usr/bin/awk '/misc/{print $NF}')
echo "Latest Version is: $ltestver"

答案 2 :(得分:0)

您可以使用以下内容:

$ latestver=$( wget -qO- ftp://ftp.adobe.com/pub/adobe/reader/mac/AcrobatDC/ | grep 'pub/adobe/reader/mac/AcrobatDC' | sed 's/.*">\(.*\)\/<.*/\1/g' | tail -2 | head -1 )