如何在unix中使用C shell一次读取一行

waxmsbnn  于 2022-11-04  发布在  Unix
关注(0)|答案(5)|浏览(174)

我试着用c shell做一个小脚本,它会把一个由几行组成的文件,每行包含一个名字和一个数字,并把所有有特定名字的数字相加。我怎么能每次都把下一行放入一个变量呢?
我最高部分是:(以后我就可以得到一个完整的行到$line了)

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

svujldwt1#

我已经设法用下一段代码解决了这个问题:

foreach line ("`grep $1 bank`")
    echo $line
    set line_break = ($line)
   @ sum = $sum +$line_break[2]
end
echo $1\'s balance id: $sum\$
kyvafyod

kyvafyod2#

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

set text = 'awk -v ln=$j '{if (NR==ln) print $0}' test.txt'
bksxznpy

bksxznpy3#

在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
vxf3dgd4

vxf3dgd44#

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

q1qsirdb5#

可以从任何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

相关问题