shell 脚本 while read a b c d ;do done语句中 a b 的值于最外层不一致

[复制链接]
查看11 | 回复1 | 2011-3-2 12:34:07 | 显示全部楼层 |阅读模式
while read a b c d
do
echo $a,$b
awk -F" " '{if($1==$a && $2==$b){print $1;}print $a,22}' ./data/1/statusl.txt
echo 1
done<./data/1/statusl.txt
echo hey!
输入文件的每行是3351200
$a=335 $b=1 $c=2 $d=00
但在do done的awk语句里面
$a=3351200
怎么改能让在do done的awk语句里面$a=335 $b=1??

回复

使用道具 举报

千问 | 2011-3-2 12:34:07 | 显示全部楼层
while循环一次只读一行,直至读到文件末尾。你试试下面这个:while read linedo
echo "$line"done <./data/1/statusl.txt就会打印:3351200你要把每行取出来分别赋给一个变量的话,用sed 或 head 即可。a=`sed -n '1p' ./data/1/statusl.txt`b=`sed -n '2p' ./data/1/statusl.txt`或者a=`head -n 1 ./data/1/statusl.txt`b=`head -n 2 ./data/1/statusl.txt` 而且上面的aw
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行