我正在尝试找到一种更好的方法来匹配我的bash脚本中的星期几。这就是我的工作:
if [[ $LINE == *"Sun"* ]] || [[ $LINE == *"Mon"* ]] || [[ $LINE == *"Tue"* ]] || [[ $LINE == *"Wed"* ]] || [[ $LINE == *"Thu"* ]] || [[ $LINE == *"Fri"* ]] || [[ $LINE == *"Sat"* ]]; then
我正在解析的文件中的所有行都是从Mon到Sun开始的:
Mon cat dog bird
Tue bird cat dog
但我知道必须有更好的方法。我尝试了很多东西,这里有几个失败:
DAYS_REGEX='*[S|M|T|W|F][u|o|e|h|r|a][n|e|d|u|i|t]*'
if [[ $LINE =~ $DAYS_REGEX ]] ; then
和
if [[ $LINE == *"Sun|Mon|Tue|Wed|Thu|Fri|Sat"* ]] ; then
我觉得应该有一个像这样的正则表达式,但我不能把它固定下来:
(SMTWF / uoehra / neduit)
我有什么工作,但我正在努力学习如何将正则表达式合并到我的bash脚本中。任何帮助/建议将不胜感激。 TIA
答案 0 :(得分:3)
匹配正则表达式:
if [[ $LINE =~ Sun|Mon|Tue|Wed|Thu|Fri|Sat ]]; then
echo match
fi
答案 1 :(得分:1)
我会使用案例陈述:
case "$LINE" in
Mon*|Tue*|Wed*|Thu*|Fri*|Sat*|Sun*)
echo "Some logic here..."
;;
esac
如果您需要:
,那么您可以将其拆分为单独的逻辑单独的日子case "$LINE" in
Mon*|Tue*|Wed*)
echo "Different logic"
;;
Thu*|Fri*|Sat*|Sun*)
echo "Some logic here..."
;;
esac