Я должен создать скрипт, который сможет суммировать столбцы. Файл выглядит следующим образом:Несколько аргументов в сценарии оболочки с использованием awk
1 2 3
1 2
1
При выполнении сценария без аргумента ./sum.sh
я получаю сумму всех столбцов поэтому ответ 10. Но я должен сделать это только добавить определенные столбцы. Например ./sum.sh 1 3
должен подвести первый и третий столбец и дать 6.
Мой код:
sum=0
if [[ $# -eq 0 ]]; then
awk '{for(i=1;i<=NF;i++) sum+=$i;}; END {print sum}' plik.txt
else
exit 0;
fi
while [ $# -gt 0 ]
do
awk '{sum +="$1"} END {print sum}' plik.txt
shift
done
Я думаю, что я очень близко к решению, но что-то должно отсутствовать.
Там в хорошее решение здесь без использования 'awk': http://stackoverflow.com/questions/33006845/how-to-sum-a-row-of-numbers-from-text-file-bash-shell -scripting. Если вы планируете делать такую вещь, лучше сказать, что 'awk' определяет, есть ли один аргумент или больше для каждой строки. – Yaron
Но я должен сделать это с помощью awk. Я знаю, что это, в то время как кусок кода не так уж плох, но есть только небольшая часть, которую мне не хватает, чтобы достичь того, что я хочу. – codddeer123
Решение, которое я предоставил, не печатает на строку, если вы хотите, чтобы сумма была рассчитана для каждой строки, мне нужно внести небольшие изменения. – Yaron