[root@localhost expert_shell]# LOGCHKS="/var/log/messages:authentication%20failure:rbpeters:warn /var/log/messages:recv%20failure::error"
[root@localhost expert_shell]# logfile=` |cut -d: -f1` 或者 logfile=`echo $LOGCHKS |awk -F: '{print $1}'`结果也一样
[root@localhost expert_shell]# echo $logfile
/var/log/messages
[root@localhost expert_shell]# logfile1=`echo $LOGCHKS |cut -d: -f2`
[root@localhost expert_shell]# echo $logfile1
authentication%20failure
[root@localhost expert_shell]# logfile1=`echo $LOGCHKS |cut -d: -f3`
[root@localhost expert_shell]# echo $logfile1
rbpeters
[root@localhost expert_shell]# logfile1=`echo $LOGCHKS |cut -d: -f4`
[root@localhost expert_shell]# echo $logfile1
warn /var/log/messages
[root@localhost expert_shell]# logfile1=`echo $LOGCHKS |cut -d: -f2`
[root@localhost expert_shell]# echo $logfile1
authentication%20failure
[root@localhost expert_shell]# strings="`echo $logfile1 |sed -e \"s/%20/ /g\"`"
[root@localhost expert_shell]# echo $strings
authentication failure
[root@localhost expert_shell]# strings="`echo $logfile1 |sed -e 's/%20/ /g'`"
[root@localhost expert_shell]# echo $strings
authentication failure
代码第21行 (注意到sed -e 后用的是\" g后用的也是\"双引号)
[root@localhost expert_shell]# strings="`echo $logfile1 |sed -e \"s/%20/ /g\"`" 双引号
和代码第24行(注意到sed -e 后直接用的是' g后用的也直接是'单引号)
[root@localhost expert_shell]# strings="`echo $logfile1 |sed -e 's/%20/ /g'`" 单引号
作用相同,都是将%20替换为空格(s/%20/ /g,/ /之间留有空格)。
或者 用\ 后面加个空格也可以表示空格:
strings="`echo $logfile1 |sed -e 's/%20/\ /g'`"
执行结果一样。