我有一個 bash shell 腳本。
我知道如何使用split函式在 Perl 中標記字串。我知道 Bash 中也有一種方法。我更喜歡使用 Perl 函式。
如果可能的話,如何在 bash 中使用 Perl 來拆分字串并存盤在陣列中?
假設 string = "[email protected];[email protected]"
uj5u.com熱心網友回復:
如果您詢問是否可以在 bash 中使用 perl 陣列:不,該資料位于不同的行程中。
鑒于:
string="[email protected];[email protected]"
在 bash 中,使用
IFS=";" read -ra addresses <<< "$string"
如果你真的想split在 perl 中使用,你可以這樣做
mapfile -t addresses < <(
perl -sle 'print for split /;/, $emails' -- -emails="$string"
)
兩種解決方案都會導致
$ declare -p addresses
declare -a addresses=([0]="[email protected]" [1]="[email protected]")
檔案:
read,
mapfile
uj5u.com熱心網友回復:
你可以做這樣的事情
v="[email protected];[email protected]"
IFS=$'\n' a=( $(perl -nE 'say for split /;/' <<< "$v") )
然后a包含電子郵件地址。
由于電子郵件地址不能包含空格,您可以忽略該IFS部分(但這是針對更一般的情況)。
uj5u.com熱心網友回復:
我不確定你為什么要這樣做,但我想到了:
- 創建一個單獨的 Perl 腳本,它接受一個引數。
- 拆分字串。
- 將每個標記列印到標準輸出。
- 從 bash 呼叫腳本并給它字串
- 在 bash 陣列中捕獲輸出
將輸出重定向到 bash 陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/464666.html
下一篇:如何傳遞定義為常量的陣列的參考?
