[英]How can I read one line at a time with C shell in unix
我尝试使用 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\$
我发现这个讨论可能会回答你的问题: http : //www.linuxquestions.org/questions/programming-9/csh-while-read-738708/
变量文件是源文件 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.