Как суммировать определенные строки с помощью awk и другие методы?

123|Raghu|80|90|60

234|Maya|10|20|30

123|Atul|20|30|60

413|Gita|56|71|89

745|Mohan|22|100|23

Это - мой текстовый файл, где я должен суммировать метки каждого студента и распечатать их линию за линией.

1
задан 7 February 2019 в 06:27

1 ответ

Вам не нужен awk для этого, сценарий удара сделает:

#!/bin/bash
IFS='|'
while read -r -a array line
do
  i=0;sum=0;line=""
  for element in "${array[@]}"
  do
    if [ $i -gt 1 ]
    then
      let sum=sum+$element        
    else
      line=$line$element$IFS
    fi
    let i=i+1
  done
  echo "$line$sum"
done < "${1:-/dev/stdin}"

Если вышеупомянутый сценарий называют процессом, и Ваш файл данных называют данными, работая

process < data

произведет

123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
0
ответ дан 7 December 2019 в 21:35

Другие вопросы по тегам:

Похожие вопросы: