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

发布于 2024-09-29 02:24:50 字数 202 浏览 6 评论 0原文

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

我所做的 summig 部分是:(在我能够获得 $line 的完整行之后)

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

I try to make a small script, using c shell, that will take a file made of several lines, each containing a name and a number and sum all numbers that a have certain name. How can I put into a variable the next line each time?

the summig part I do by: (after I'll be able to get a full line to $line)

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

也只是曾经 2024-10-06 02:24:50

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

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

I have managed to solve it using the next piece of code:

foreach line ("`grep $1 bank`")
    echo $line
    set line_break = ($line)
   @ sum = $sum +$line_break[2]
end
echo $1\'s balance id: $sum\$
岁月静好 2024-10-06 02:24:50

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

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

variable file is a space-delineated array of the lines in source file test.txt. It is a useful to extract a line at a time.

set text = 'awk -v ln=$j '{if (NR==ln) print $0}' test.txt'
世态炎凉 2024-10-06 02:24:50

在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

in cshell correct method 1

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

in cshell correct method 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
花开雨落又逢春i 2024-10-06 02:24:50
foreach line (`awk {print $0} test_file`)
  echo $line
end
foreach line (`awk {print $0} test_file`)
  echo $line
end
始于初秋 2024-10-06 02:24:50

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

Awk can be called from any shell:

% cat >test.dat
a 1
a 3
b 2
a 7
b 4
% awk '($1 == "a") { SUM += $2 } END { print SUM }' < test.dat
11
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文