Bash를 배우고 있는데 텍스트 파일에서 데이터를 추출하는 데 문제가 있습니다. "awk"를 사용할 수 있다는 것은 알지만 어떻게 사용하는지 모르겠습니다...
다음 데이터를 두 개의 열로 구성했습니다.
8.044 FIX
9.326 3 the
18.726 blank
20.742 FIX
63.624 FIX
64.89 3 house
73.656 TEST
두 번째 열의 식별자를 기반으로 첫 번째 열에 표시된 숫자를 빼고 싶습니다. 두 번째 열의 "3"은 내 식별자이고 다음 행은 내가 빼려는 숫자입니다. 따라서 다음과 같아야 합니다.
18.726 - 9.326
73.656 - 64.89
출력은 다음과 같이 세 개의 열이 있는 텍스트 파일에 있어야 합니다.
9.326 9.4 1
64.89 8.766 1
어떤 도움이라도 대단히 감사하겠습니다! 미리 감사드립니다!
답변1
노력하다:
awk '$2=="3"{out=1;last=$1;next}out{print last,$1-last,1;out=0}' infile
답변2
파일의 줄을 바꾸면 awk 코드가 더 쉽습니다.
tac file | awk '$2 == "3" {print $1, prev - $1, 1} {prev = $1}' | tac
9.326 9.4 1
64.89 8.766 1
"3"이 줄의 마지막에 나타나면 두 번째 값은 첫 번째 값의 부정 값이 됩니다. "prev" 변수는 비어 있고 awk는 빼기에서 값 0을 사용합니다.