我有一個格式如下的檔案(userbouquet.test.tv):
#NAME 4.8E-Astra
#SERVICE 1:64:5:0:0:0:0:0:0:0::PVU 12322 V 27500 5-6
#DESCRIPTION PVU 12322 V 27500 5-6
#SERVICE 1:0:1:64:1:5E:30B022:0:0:0:
#SERVICE 1:0:1:190:1:5E:30B022:0:0:0:
#SERVICE 1:64:6:0:0:0:0:0:0:0::PVU 12360 V 27500 5-6
#DESCRIPTION PVU 12360 V 27500 5-6
#SERVICE 1:0:1:258:1:5E:300000:0:0:0:
您能否幫助我撰寫一個讀取每一行并檢查行是否以字串#SERVICE 開頭的腳本。
如果行以字串 #SERVICE 開頭,則將對應的值(例如 1:64:5:0:0:0:0:0:0:0::)分配給變數。
EDiT 1:僅以字串#SERVICE 開頭并以“:”結尾的行(例如#SERVICE 1:0:1:64:1:5E:30B022:0:0:0:)
以字串#SERVICE 開頭的行但也應忽略以文本(評論)結尾(例如#SERVICE 1:64:5:0:0:0:0:0:0:0::PVU 12322 V 27500 5-6)
我設法寫了以下內容:
#!/bin/bash
userbouquet="/etc/enigma2/userbouquet.test.tv"
for (( i=1; i<=$(grep "" -c $userbouquet); i ))
do
#
# HELP ME HERE
#
wget -q -O - http://127.0.0.1/web/zap?sRef={variable}
#example wget -q -O - http://127.0.0.1/web/zap?sRef=1:64:5:0:0:0:0:0:0:0::
sleep 3s
done
uj5u.com熱心網友回復:
#!/bin/bash
userbouquet="/etc/enigma2/userbouquet.test.tv"
while read -u3 a b _; do
if [[ $a == '#SERVICE' && $b == *: ]]; then
wget -q -O - "http://127.0.0.1/web/zap?sRef=$b"
sleep 3
fi
done 3< "$userbouquet"
uj5u.com熱心網友回復:
輸入示例中的某些行以空格結尾,因此 awk 模式包含[[:space:]]*between :and $(行尾)。
#!/bin/bash
userbouquet="/etc/enigma2/userbouquet.test.tv"
for variable in $(awk '/#SERVICE.*:[[:space:]]*$/ {print $2}' $userbouquet); do
wget -q -O - http://127.0.0.1/web/zap?sRef="$variable"
sleep 3s
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407352.html
標籤:
