Bash의 텍스트 파일에서 행과 열의 값을 얻는 방법은 무엇입니까?

Bash의 텍스트 파일에서 행과 열의 값을 얻는 방법은 무엇입니까?

나는 bash 프로젝트를 진행 중입니다. 텍스트 파일에서 모든 값(다른 곳에서 사용할 것이기 때문에 한 번에 하나씩)을 가져와야 합니다. 내가 받게 될 텍스트 파일은 다음과 같이 구성되어 있습니다.

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

행과 열의 양이 고정되어 있지 않으므로 일반적인 내용이 필요합니다. Bash에서 각 Val을 하나씩 어떻게 검색합니까? 감사해요.

답변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"

각 줄은 array 에 저장되며 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두 번째 열부터 각 줄의 끝까지 모든 값을 인쇄합니다. 값은 개행 문자로 인쇄됩니다.

관련 정보