我在下面創建了一個shell腳本,它檢查文件out.txt是否包含任何帶有文本「Billing_20160210」的行。我得到正則表達式部分中的錯誤,聲明「[[:not found」。不知道我是否缺少一些東西。任何幫助,將不勝感激。使用shell腳本進行正則表達式匹配
#!/bin/bash
bq ls test:Dataset_test > out.txt
cat out.txt | while read LINE
do
if [ LINE = *"Billing_20160210"* ];
then
echo "Processing $LINE"
fi
done
編輯不工作:
#!/bin/bash
bq ls geotab-bigdata-test:JS_test > out.txt
cat out.txt | while read LINE
do
if [[ $LINE == *"DailyBillingTest_20160210"* ]];
then
echo "Processing $LINE"
fi
done
沒有正則表達式只是這裏glob的。用'[[$ LINE == *「Billing_20160210」*]]替換'[LINE = *'Billing_20160210「*]'' – anubhava
這也是UUOC的情況 – anubhava
'[[:not found'也意味着你不是'實際上使用bash作爲你的解釋器來運行這個腳本。你用'sh yourscript'來調用它嗎?如果是這樣,那將覆蓋'#!/ bin/bash' shebang。如果使用明確的解釋器進行調用,則需要「bash yourscript」而不是「sh yourscript」。 –