友
我正在尝试在ksh脚本中提取以下路径的最后一部分:
TOOL_HOME=/export/fapps/mytool/mytool-V2-3-4
我想从上面提取版本#(即2-3-4)。
awk在SuSE上正常运行:
echo $TOOL_HOME | awk -F'mytool-V' '{print $2}'
#2-3-4
但是,在Solaris 10上,它会生成以下内容:
#ytool
所以在Solaris上,awk忽略了-F'mytool-V'中第一个字符之后的所有内容
如何在两个操作系统上获得相同的输出?
答案 0 :(得分:2)
在Solaris上使用/ usr / xpg4 / bin / awk,而不是/ bin / awk(又名“old,broken awk”)。
答案 1 :(得分:1)
Solaris awk
已损坏......
$ echo "$TOOL_HOME" | awk '{sub(/.*mytool-V/,"")}1'
2-3-4
或仅使用sed
$ echo "$TOOL_HOME" | sed 's/.*mytool-V//'
2-3-4
答案 2 :(得分:0)
无需使用awk
或任何其他外部程序。 ksh
可以做到这一点:
echo ${TOOL_HOME##*mytool-V}