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で各Valを1つずつ検索する方法は?ありがとうございます。

答え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,---,Name2番目の列から各行の終わりまですべての値を印刷します。値は改行文字で印刷されます。

関連情報