ファイルから入力を受け取り、変数に保存

ファイルから入力を受け取り、変数に保存

スクリプトはファイル(input.txtなど)から入力を読み取り、ファイル内の各行(N行)を別々の変数に保存し、各変数を異なる場所で一意に使用する必要があります。

たとえば、ファイルにはABCDという4つの行があり、4つの変数に格納する必要があります。

答え1

以下は各行を/tmp/file配列としてロードするため、変数などを介して1行にアクセスできます。${array[0]}

#!/bin/bash
IFS=$'\n' array=($(cat /tmp/file))

答え2

Kusalanandaが指摘したように、これはxy問題のように聞こえます。

問題に対する考えられるawk解決策は次のとおりです。

awk 'BEGIN{ RS = ""; FS = "\n"}{print "First name:",$1,"Second name:",$2,"Org name",$3,"CN name:",$4}' input

シェル変数を使用することにした場合は、次のようなものが必要になると思います。

#!/bin/bash

input=/path/to/input

mapfile -t array <"$input"

# If you don't have bash v3 use this instead of mapfile
# OLDIFS=$IFS
# IFS=$'\n'
# array=($(cat input))
# IFS=$OLDIFS

echo "First name: ${array[0]}, Second name: ${array[1]}, Org name: ${array[2]}, CN name: ${array[3]}"

関連情報