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