bash でテキスト ファイルの行と列の値を取得するにはどうすればよいでしょうか?

bash でテキスト ファイルの行と列の値を取得するにはどうすればよいでしょうか?

私は bash プロジェクトに取り組んでいます。テキスト ファイルからすべての値を取得する必要があります (別の場所で使用するため、一度に 1 つずつ)。取得するテキスト ファイルの構造は次のとおりです。

Report:
-----------
Name  Column1  Column2  Column3  Column4
row1  val1     val2     val3     val4     
row2  val5     val6     val7     val8     
row3  val9     val10    val11    val12  

行と列の数は固定されていないため、汎用的なものが必要になります。 bash で各値を 1 つずつ取得するにはどうすればよいでしょうか? よろしくお願いします。

答え1

bash whileループを使用して、ファイルの内容を行ごとに処理できます。

i=1

while IFS= read -a line; do
  printf "Line number %d:\n" $i
  printf "%s\n" "${line[@]}"
  let i++
done < "file.txt"

各行は配列に格納されておりline、次の構文で配列の各要素を取得できますline

echo "${line[n]}"

n配列内の要素の順序はどこになります。

答え2

そしてawkコマンドを通じて、

$ awk '/^Report|^-----|^Name/ {next}{for (i=2;i<=NF;i++){print $i}}' file
val1
val2
val3
val4
val5
val6
val7
val8
val9
val10
val11
val12

行の先頭をスキップしReport,---,Name、各行の 2 列目から末尾までのすべての値を出力します。値は改行で出力されます。

関連情報