歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

用cshell逐行讀文件逐行處理

  用下面的方法: 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




Copyright © Linux教程網 All Rights Reserved