用下面的方法:
foreach i ( `cat file.txt`)
echo $i
end
一般情況是可以的,但是如果有空格就不行了(1行被分成多行)。
不知各位大蝦有何高見?
俺試了以下方法:
foreach i ('12 34' '34 56')
echo $i
end
結果是正確的:
12 34
34 56
但是俺稍微改了一下:
foreach i (`echo "a" awk '{print "'''" $0 "'''" }' $fnm `)
echo $i
end
結果是:
'12
34'
'34
56'
請教各位大蝦
用while read不用for 可取一行
這是bsh的一個逐行讀取的例子,你可以參考一下。
j=0
len=`wc -l < $infile`
while test $j -lt $len;
do
a=`tail +$j $infile head -1`
…$a holds line of data…
j=`eXPr $j + 1`
done
csh 這方面很弱,不好處理。我對 csh 不熟,也沒有很好的辦法,也許
1、你可以用 awk,對每一行的處理在 awk 環境中完成
awk "{print}" file.txt
2、如果不能或不想在 awk 中處理,試試這樣,也可以在 csh 環境中完成
代碼:
#!/bin/csh
set i = 0
set l = `awk 'END{print NR}' file.txt` # 總行數
while ( $i <= $l )
set line=`awk "{ if (NR == $i) print}" file.txt`
echo $line
... # 任何對 $line 的處理應用
@ i ++
end
祝好運,寫 csh 比寫 sh, ksh 要痛苦好幾倍, icon_razz.gif