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