我正在尝试从sftp服务器收集的 device_output文件中匹配一些数字,例如“ 38:00:00 ”,并将一些if条件作为发送邮件与那个输出。我做了一些事情,但我希望在 egrep“旁边有一些更高级的代码:”:))
device_output文件
<style>
table,td{blbalba}
</style>
Device Name Ip Address Flaps ASN Uptime
Nexus 182.168.2.2 0 300 38:00:20
ASA Firewall 182.168.2.3 0 400 44:01:20
ASR CUBE 182.168.2.4 0 400 22w02d
VMWare 182.168.2.5 0 400 12:03:20
Nexus 182.168.2.5 0 400 12w03d
Nexus 182.168.2.5 0 400 12:03:20
bash脚本:
#!/bin/bash
#Variables
SFTPHOSTNAME="192.168.1.1"
SFTPUSERNAME="user"
SFTPPASSWORD="pass"
FOLDER="/home/$USER/ftp"
#SFTP CONNECTION
output=$(sshpass -p $SFTPPASSWORD sftp $SFTPUSERNAME@$SFTPHOSTNAME << !
cd $FOLDER
get device_status
exit
!);
#!/bin/bash
if egrep ":" device_output ; then
cat device_output | egrep ":|style|table|Device" | mailx -s "$(echo -e "BGP Sessions Uptime Issue \nContent-Type: text/html")" -r from_user@yah to_user@yah
else
exit 0
fi
答案 0 :(得分:0)
我想你可以这样使用egrep:
egrep ".:..:.."
匹配1:00:00
或38:00:00
或者,如果你关心数字:
egrep "[0-9]:[0-9][0-9]:[0-9][0-9]|[0-9]:"
也匹配