cat file.txt
"1" "USA" "abc"
"2" "Canada" "pqr"
....
我正在嘗試將上述字串值分配給一次遍歷每一行的變數。例如。->
sr="1" country="USA" name="abc"
sr="2" country="Canada" name="pqr"
關于如何實作這一目標的任何建議?謝謝
uj5u.com熱心網友回復:
試試這個:
cat 1.txt|awk '{print "str="$1,"country="$2,"name="$3}'
uj5u.com熱心網友回復:
如果資料的參考與雙引號的 Bash 規則兼容,則可以使用set:
#! /bin/bash
exec <<EOF
"1" "USA" "abc"
"2" "Canada" "pqr"
EOF
while read -r line; do
source <(printf 'set %s\n' "$line")
printf 'sr="%s" country="%s" name="%s"\n' "$@"
done
如果資料的參考符合JSON 參考規則,則可以使用jq來決議資料:
#! /bin/bash
exec <<EOF
"1" "USA" "abc"
"2" "Canada" "pqr"
EOF
jq -sr '.[]' | while true; do
read -r sr || break
read -r country
read -r name
printf 'sr="%s" country="%s" name="%s"\n' \
"$sr" "$country" "$name"
done
這將不太容易受到安全漏洞的影響。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416880.html
標籤:
上一篇:如何在lixshell中使用for回圈和stat命令?
下一篇:回圈遍歷行永遠不會結束
