KornShell正则表达式

时间:2014-10-24 18:38:22

标签: regex ksh

如何在ksh脚本中使用正则表达式匹配字符串的一部分?

我的脚本中有一个字符串,可能是这样的: /data/inform/far_proj/scripts/../SrcFiles/load_alfa_data.dat

我已经搜索过如何在KornShell中进行正则表达式,但我没有成功。我所拥有的是:我希望查看该字符串是否包含load_alfa_data

if [[ $FILENAME = @("load_alfa_data") ]]; then
   ...
fi

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

ksh中,您可以执行case

case "$FILENAME" in
  *load_alfa_data*) echo "found load_alfa_data" ;;
  *)                echo "nope" ;;
esac

答案 1 :(得分:0)

内置==命令中的[[运算符是模式匹配运算符

if [[ $FILENAME == *load_alfa_data* ]]; then ...

您的模式@("load_alfa_data")不包含任何通配符,因此它基本上是完全匹配字符串。

摆脱使用ALL_CAPS_VARS的习惯:有一天你会写PATH=/tmp/foo,然后想知道为什么你的脚本坏了。