6

我尝试使用 c shell 编写一个小脚本,该脚本将获取一个由多行组成的文件,每行包含一个名称和一个数字,并将所有具有特定名称的数字相加。如何每次都将下一行放入变量中?

我所做的总结部分:(在我能够得到一条完整的线到 $line 之后)

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

6 回答 6

8

我已经设法使用下一段代码来解决它:

foreach line ("`grep $1 bank`")
    echo $line
    set line_break = ($line)
   @ sum = $sum +$line_break[2]
end
echo $1\'s balance id: $sum\$
于 2010-10-27T13:37:40.683 回答
1

我发现这个讨论可能会回答你的问题: http ://www.linuxquestions.org/questions/programming-9/csh-while-read-738708/

于 2010-10-25T09:34:45.533 回答
0

变量文件是源文件 test.txt 中行的空格分隔数组。一次提取一行很有用。

set text = 'awk -v ln=$j '{if (NR==ln) print $0}' test.txt'
于 2021-04-20T04:00:22.947 回答
0

foreach line ( awk {print $0} test_file) echo $line end

于 2021-04-20T05:52:44.173 回答
0

在 cshell 中正确的方法 1

foreach line ( awk '{print}' test_file) echo $line end

在 cshell 中正确的方法 2

set n = wc -l a.txt set i = 1 while($i <= $n) set line = " awk '{if (NR == $i) print}' a.txt" echo ${line} @i++ end

于 2021-04-21T06:54:02.650 回答
-1

可以从任何 shell 调用 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
于 2010-10-27T13:48:40.387 回答