Bash
如何將由新行分隔的字元串文件轉換為數組
我有一個包含如下數據的文件:
UserName UserName UserName
每條數據由一個新行分隔。
我需要將該數據轉換為字元串數組並儲存在變數中。
如何僅通過 bash 或 shell 執行來實現這一點?
與
mapfile
:$ mapfile -t array < yourfile $ declare -p array # print array content declare -a array=([0]="UserName" [1]="UserName" [2]="UserName")
$ set -f # disable globbing $ arr=($(<file.csv)) $ set +f # enable globbing $ declare -p arr # print array content declare -a arr=([0]="UserName" [1]="UserName" [2]="UserName")
arr=(…)
創建數組$(<file.csv)
讀取文件file.csv
(如$(cat file.csv)
)在讀取文件之前,應禁用萬用字元,以防止使用者名使用
*
或?
或特殊模式(路徑名擴展)等字元進行擴展。元素在換行符、空格或製表符處拆分(假設
$IFS
尚未修改)並修剪。