Как я могу прочитать одну строку за раз с оболочкой C в Unix - PullRequest
5 голосов
/ 25 октября 2010

Я пытаюсь сделать небольшой скрипт, используя оболочку c, который будет принимать файл, состоящий из нескольких строк, каждая из которых содержит имя и число, и суммирует все числа, которые имеют определенное имя.Как я могу поместить в переменную следующую строку каждый раз?

сумма, которую я делаю: (после того, как я смогу получить полную строку в $ line)

set line =($line)
@ sum = $sum + $line[2]

Ответы [ 3 ]

8 голосов
/ 27 октября 2010

Мне удалось решить, используя следующий фрагмент кода:

foreach line ("`grep $1 bank`")
    echo $line
    set line_break = ($line)
   @ sum = $sum +$line_break[2]
end
echo $1\'s balance id: $sum\$
1 голос
/ 25 октября 2010

Я нашел это обсуждение, которое может ответить на ваш вопрос: http://www.linuxquestions.org/questions/programming-9/csh-while-read-738708/

0 голосов
/ 27 октября 2010

Awk можно вызвать из любой оболочки:

% cat >test.dat
a 1
a 3
b 2
a 7
b 4
% awk '($1 == "a") { SUM += $2 } END { print SUM }' < test.dat
11
...