首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

循环内有awk语句只执行一次解决方案

2012-04-02 
循环内有awk语句只执行一次Perl code#!/bin/shi0while read LINEdoecho i $iecho $LINEdone my.file

循环内有awk语句只执行一次

Perl code
#!/bin/shi=0while read LINEdo     echo "i= $i"    echo $LINEdone < my.file


以上代码会将my.file文件内容逐行输出。改成以下代码后,循环就只执行一次

Perl code
#!/bin/shi=0while read LINEdo     echo "i= $i"    echo $LINE    echo "region 1 is: `awk '{print $1}'`   #增加这一句,本意想输出第一列done < my.file


结果显示 i=0,增加的语句将整个文本的第一列输出而不是第一行的第一列。

请问,这是为什么?是因为 awk 语句处理的时候会读取整个文本吗?

[解决办法]
echo "region 1 is: `echo $LINE | awk '{print $1}'`"

[解决办法]
C/C++ code
#!/bin/shi=0while read linedo    echo "i=$i"    echo $line    let i=$i+1done < my.filewhile read linedo    echo "i=$i"    echo $line    echo $line | awk '{print "region 1 is:"$1}'    let i=$i+1done < my.file
[解决办法]
探讨

打漏了一句 ((i++))。不过上楼已经改过来了。

如果把
echo $line | awk '{print "region 1 is:"$1}'

改成

awk '{print "region 1 is:"$1}'

循环就只执行一次了。这是为什么。

[解决办法]
探讨
打漏了一句 ((i++))。不过上楼已经改过来了。

如果把
echo $line | awk '{print "region 1 is:"$1}'

改成

awk '{print "region 1 is:"$1}'

循环就只执行一次了。这是为什么。

热点排行