0
我有一个真正简单的脚本来更新基于平面文件的表格,但是由于列表越来越长,非有效的格式化变量将被引入并导致问题,bash脚本中的变量格式化检查
#!/bin/bash
OLDIFS=$IFS
IFS=,
file1=file.csv
while read mac loc; do
dbaccess modemdb <<EndOfUpdate 2>/dev/null
UPDATE profile
SET localization= '$loc'
WHERE mac_address = '$mac';
EndOfUpdate
done <"$file1"
IFS=$OLDIFS
文件内容如此。
12:BF:20:1B:D3:22,RED-1234
12:BF:20:2D:FF:1B,BLUE-1234
12:BF:20:ED:74:0D,RED-9901
12:BF:20:02:69:7C,GREEN-4321
12:BF:20:02:6B:42,BROWN
12:BF:20:ED:74:0D,BLACK
我遇到困难的是如何设置$ mac和$ loc变量的格式检查,如果它们不匹配,它会停止运行。 $ loc可以是任何19位数字,所以只需确保它不为空而不再长。 mac地址必须不为空,格式与文件中一样。我在另一篇文章中找到了参考,但不确定如何整合。
`[[ "$MAC_ADDRESS" =~ "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$" ]]`
寻找如何创建验证的帮助。
谢谢,用正则表达式
非常感谢你! – cw2