특정 열을 grep하고 곱하기

특정 열을 grep하고 곱하기

파일에는 특정 구조가 있습니다.

------------------------------
|  1   123.456    789.1011 T |
|  2   789.123    234.1234 T |
------------------------------
 All true

저 할 수 있어요

grep -s -B 3 "All true" file.out | head -n 2

관련 행만 가져오기

|  1   123.456    789.1011 T |
|  2   789.123    234.1234 T |

이제 변수의 첫 번째 숫자( 123.456sum 789.123)를 계속 가져오면서 일부 값을 곱하려면 어떻게 해야 합니까?x

ngrep 라인 등의 '번째 매개변수를 얻는 방법이 있나요 ?

답변1

짧은grep+방법:

예를 들어 승수는 다음과 같습니다 3.

grep -sB 3 "All true" file.out | awk -v x=3 '$1=="|"{ print $3*x }'

산출:

370.368
2367.37

  • -v x=3- 승수를 x변수로 전달합니다.스크립트

답변2

@Philippos 덕분에 답변을 얻을 수 있었습니다.

number=$(grep -s -B 3 "All true" file.out | head -n 2 | cut -d' ' -f6 )

for i in ${number}
do
  echo "$i*$x" | bc -l
done

관련 정보