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