배열 요소를 스스로 곱하는 방법

배열 요소를 스스로 곱하는 방법

배열 파일이 있고 요소에 대해 수학적 연산을 수행해야 합니다. 내가 해야 할 일은 요소 자체를 곱한 다음 인쇄하는 것입니다.

입력은 다음과 같습니다.

1: 6.1703
44 -0.27135
46 0.30270
44 0.52648

2: 6.1932
44 0.51448
46 0.14674
44 0.27957
46 -0.31834

3: 6.5664
45 -0.11892
45 0.66483
46 0.12505

각 배열의 첫 번째 행은 헤더입니다. 두 번째 열의 요소에 대해 수학적 연산을 수행해야 합니다.

출력은 다음과 같아야 합니다.

1: 6.1703
44 0.07363
46 0.09162
44 0.27718

2: 6.1932
44 0.26468
46 0.02153
44 0.07815
46 0.10134

3: 6.5664
45 0.0141
45 0.44199
46 0.01563

어떤 아이디어나 제안이 있나요?

답변1

나는 이것을 사용할 것입니다 awk:

awk '$1 ~ /^[0-9]+$/ {$2*=$2}; 1'

첫 번째 열이 숫자인 경우 두 번째 열에 숫자를 곱합니다. 그런 다음 전체 줄을 인쇄하십시오.

답변2

while read line; do                                # for all lines in the file
  i=0                                              # initialise loop counter
  for param in $line; do                           # for all words on the line
    if [[ $i -ne 0 ]]; then                        # if its not the first one
      echo $param | awk '{printf "%4.3f\n",$1*$1}' # print the result of squaring
    fi                                             # (you could output to a file with >>)
    ((i++))                                        # increment loop counter
  done
done < yourfilename                                # stream in your file

관련 정보