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

관련 정보