次のようなデータを含むファイルがあります。
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
_が変更されていない場合)、トリミングされます。
i=0
while IFS= read -r line
do
var[i++]="$line"
done < filename
ここで、var配列変数はすべての名前を格納します。そして、によってアクセスすることができます
printf '%s\n' "${var[0]}"
printf '%s\n' "${var[1]}"
...
...