次のデータを含むファイルがあります。
UserName
UserName
UserName
各データは改行文字で区切られます。
このデータを文字列配列に変換して変数に保存する必要があります。
bashまたはシェルの実行でこれをどのように達成できますか?
答え1
そしてmapfile
:
$ mapfile -t array < yourfile
$ declare -p array # print array content
declare -a array=([0]="UserName" [1]="UserName" [2]="UserName")
答え2
$ 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
変更されていないと仮定)で分割され、切り捨てられます。
答え3
i=0
while IFS= read -r line
do
var[i++]="$line"
done < filename
ここで、var配列変数はすべての名前を格納します。以下からアクセスできます。
printf '%s\n' "${var[0]}"
printf '%s\n' "${var[1]}"
...
...