如何在文本文件中使用 grep asterisk *
?
这是我的代码:
if grep -F "\#$minute $hour $date $month $day $cr_user $comm" filecron; then
echo "$minute $hour $date $month $day $cr_user $comm" > /dev/null 2>&1
echo "data exist"
elif [[ -z $minute || -z $hour ]]; then
echo "#$minute $hour $date $month $day $cr_user $comm" > /dev/null 2>&1
echo "nothing to input"
echo "" >> filecron
elif [[ $stat == "inactive" ]]; then
echo "\#$minute $hour $date $month $day $cr_user $comm" >> filecron
echo "input data inactive to filecron"
else
echo "$minute $hour $date $month $day $cron_user $comm" >> filecron
echo "input data active to filecron"
fi
这里是filecron包含
#30 07 03 09 RAB root bash /media/data/once.sh > /dev/null 2>&1
#* * * * * root bash /media/data/looping.sh > /dev/null 2>&1
#56 * * * * root bash /media/data/minutely.sh /dev/null 2>&1
#43 * * * * root bash /media/data/hourly.sh > /dev/null 2>&1
#54 11 * * * root bash /media/data/daily.sh /dev/null 2>&1
#00 12 * * RAB root bash /media/data/weekly.sh > /dev/null 2>&1
#30 20 15 * * root bash /media/data/monthly.sh > /dev/null 2>&1
#45 21 01 09 * root bash /media/data/yearly > /dev/null 2>&1
#15 16 31 08 MIN root bash /media/data/other.sh > /dev/null 2>&1
#30 07 * * * root bash /media/data/daily2.sh > /dev/null 2>&1
#30 10 * * * root bash /media/data/daily3.sh > /dev/null 2>&1
#45 17 17 * * root bash /media/data/monthly2.sh > /dev/null 2>&1
#00 18 * * SAB root bash /media/data/weekly2.sh > /dev/null 2>&1
#30 07 03 09 RAB root bash /media/data/once.sh > /dev/null 2>&1
#* * * * * root bash /media/data/looping.sh > /dev/null 2>&1
#56 * * * * root bash /media/data/minutely.sh /dev/null 2>&1
#43 * * * * root bash /media/data/hourly.sh > /dev/null 2>&1
但是 grep
在 $minute
或 $hour
或 $month
或 时不起作用$day
或 $date
是 *
那么,我该怎么做呢?
最佳答案
如果您没有任何正则表达式模式,并且只想精确匹配字符串,请使用 -F
选项到 grep
(或旧的 fgrep
命令):
if grep -F "#$minute $hour $date $month $day $cr_user $comm" filecron; then
关于bash - bash 可以 grep "*"而不是 "\*"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717644/