我尝试使用 c shell 编写一个小脚本,该脚本将获取一个由多行组成的文件,每行包含一个名称和一个数字,并将所有具有特定名称的数字相加。如何每次都将下一行放入变量中?
我所做的总结部分:(在我能够得到一条完整的线到 $line 之后)
set line =($line)
@ sum = $sum + $line[2]
我已经设法使用下一段代码来解决它:
foreach line ("`grep $1 bank`")
echo $line
set line_break = ($line)
@ sum = $sum +$line_break[2]
end
echo $1\'s balance id: $sum\$
变量文件是源文件 test.txt 中行的空格分隔数组。一次提取一行很有用。
set text = 'awk -v ln=$j '{if (NR==ln) print $0}' test.txt'
foreach line ( awk {print $0} test_file
) echo $line end
foreach line ( awk '{print}' test_file
) echo $line end
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
可以从任何 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