텍스트 파일 마지막 줄의 첫 번째 열을 추출하고 싶습니다. 관심있는 내용을 다른 파일에 출력하고 다시 읽는 대신 명령을 사용하여 변수로 직접 읽을 수 있습니까? 예를 들어, 내 파일이 다음과 같은 경우 :
...
123 456 789(this is the last line)
내가 원하는 것은 쉘 스크립트에서 123을 변수로 읽는 것입니다. 어떻게 할 수 있습니까?
한 가지 방법은 원하는 줄을 추출하고 해당 열을 배열로 읽고 원하는 배열 요소를 내보내는 것입니다.
마지막 줄 :
#!/bin/bash
# ^^^^- not /bin/sh, to enable arrays and process substitution
read -r -a columns < <(tail -n 1 "$filename") # put last line's columns into an array
echo "${columns[0]}" # emit the first column
또는 awk
작업에 적합한 도구입니다.
line=2
column=1
var=$(awk -v line="$line" -v col="$column" 'NR == line { print $col }' <"$filename")
echo "Extracted the value: $var"
즉, 파일 시작 부분에 가까운 줄을 찾고 있다면 (런타임 성능 측면에서) 더 빠르고 쉘 내장 기능을 고수하기가 더 쉽습니다. 예를 들어, 파일의 두 번째 줄에서 세 번째 열을 가져 오려면 :
{
read -r _ # throw away first line
read -r _ _ value _ # extract third value of second line
} <"$filename"
이것은 _
읽고 싶지 않은 값에 대한 자리 표시 자로 s를 사용하여 작동합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다