我嘗試使用c shell製作一個小腳本,該腳本將包含一個由多行組成的文件,每行包含一個名稱和一個數字並將所有數字相加那個有一定的名字。每次我怎樣才能把下一行放入變量中?如何在unix中使用C shell一次讀取一行
的summig部分我做的是:(我就可以得到一個完整的行$行之後)
set line =($line)
@ sum = $sum + $line[2]
我嘗試使用c shell製作一個小腳本,該腳本將包含一個由多行組成的文件,每行包含一個名稱和一個數字並將所有數字相加那個有一定的名字。每次我怎樣才能把下一行放入變量中?如何在unix中使用C shell一次讀取一行
的summig部分我做的是:(我就可以得到一個完整的行$行之後)
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\$
awk中可以從任何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
他特別詢問了如何在cshell中做到這一點。 – 2010-10-27 13:52:05
他需要CSH解決方案,而不是AWK,但我必須同意:-)使用AWK \ SED工具通常比使用shell更好。 – codeScriber 2010-10-27 13:58:22
事實上,這是錯誤的做法,除非有一些Unix我沒有意識到沒有awk :-) – Gaius 2010-10-27 14:31:42
[CSH PROGRAMMING CONSIDERED HARMFUL](http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/)可能與您正在做的事情相關,如果您有選擇你的外殼。這有點咆哮,但值得一讀。 – 2010-10-25 09:37:26
@Noufal是否真的需要在每個csh問題? – 2010-10-27 13:25:34
我不會故意尋找'csh'的問題發佈該鏈接,但每當我看到它提到(我遇到了這個問題,由於'unix'標籤),我提起它,因爲它是相當殘酷。我已經與它合作了2年左右,真的希望人們在開始之前把它扔掉。 – 2010-10-28 13:20:43