我正在嘗試將以下字串拆分為分隔符上的陣列
str="We;Welcome;You;On;Javatpoint"
我設法在 bash 中找到了一個解決方案
#!/bin/bash #Example for bash split string by another string str="We;Welcome;You;On;Javatpoint" delimiter=";" s=$str$delimiter array=(); while [[ $s ]]; do array =( "${s%%"$delimiter"*}" ); s=${s#*"$delimiter"}; done; declare -p array
結果是
array=([0]="We" [1]="Welcome" [2]="You" [3]="On" [4]="Javatpoint")
我需要將字串拆分為 Dockerfile 中的陣列。
碼頭檔案:
> FROM python:3.7-slim
>
> ENV IN="We;Welcome;You;On;Javatpoint"
uj5u.com熱心網友回復:
只需讓 bash 進行拆分即可。
IFS=';' read -r -a array <<<"str"
或與readarray多行變數類似。
在 Dockerfile 里面
如果您想使用 bash 功能,請首先確保您正在運行 Bash。RUNdockerfile 中的命令默認為 sexecute /bin/sh(請參閱 dockerfile 參考檔案),它可能不是 Bash 并且可能不支持 Bash 陣列。
在這種特定情況下,為了/bin/sh兼容,替換;換行符 ( tr) 并將其作為換行符分隔的流讀取,或者如果沒有其他空格,則使用分詞。見https://mywiki.wooledge.org/BashFAQ/001
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383718.html
下一篇:將分隔欄位轉換為具有名稱和值的行
