免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2352 | 回复: 7
打印 上一主题 下一主题

在while 循环中.变量 i++ 的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-13 14:42 |只看该作者 |倒序浏览
#/usr/bin/sh

tmppath=`pwd`
tmptxt1=$tmppath/tmp_txt1.txt
tmptxt2=$tmppath/tmp_txt2.txt
tmptxt3=$tmppath/tmp_txt3.txt




cat $tmppath/test2.txt | while read temp

do
i=0
i=`echo $i +1 |bc`
sed -n '1,4p' test2.txt >> tmp_txt1.txt
sed -e '1,4d' test2.txt > tmp_txt2.txt
cat tmp_txt2.txt > test2.txt

sed -n '1,4p' test3.txt >> tmp_txt1.txt
sed -e '1,4d' test3.txt > tmp_txt3.txt
cat tmp_txt3.txt > test3.txt

echo "已经处理第 $i 条\n"
echo "###############"


done
cat tmp_txt1.txt > test4.txt
rm tm_txt*.txt



这里 i 的值 为什么一直是 1, 我想在执行文件的时候看下处理到第几条了

麻烦告知下..

另外上面的脚本 我是为了 txt2 的文件中每四行插入txt3中的四行....当然 2个文件的行数是一样的....
是否有其他更好的方法



cat txt2
11
12
13
14
15
16
17
18

cat txt3
21
22
23
24
25
26
27
28

最后的结果是

cat test4.txt
11
12
13
14
21
22
23
24
15
16
17
18
25
26
27
28
.
.
.

[ 本帖最后由 soloeyes 于 2009-7-13 14:49 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-07-13 15:02 |只看该作者

回复 #1 soloeyes 的帖子

每次都i=0啊。

论坛徽章:
0
3 [报告]
发表于 2009-07-13 15:03 |只看该作者
....额... 哈哈...知道了..怎么放到里面去了..
黑哥.
那还有其他更好的方法实现上面的那个脚本吗

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2009-07-13 15:13 |只看该作者

回复 #3 soloeyes 的帖子

while read
((i++))
...
echo $i
done < file

论坛徽章:
0
5 [报告]
发表于 2009-07-13 15:15 |只看该作者
~#a=1
~#echo $((++a))
2

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2009-07-13 15:15 |只看该作者
每次都重新赋值为0,当然就是1啰~~

论坛徽章:
0
7 [报告]
发表于 2009-07-13 15:25 |只看该作者
前面路径最好用dirname $0,别用pwd。

如果文件里没有空格和制表符,可以尝试这个:

  1. xargs -n 4 < file1 > file1.tmp
  2. xargs -n 4 < file2 > file2.tmp
  3. paste file1.tmp file2.tmp | tr -s ' \t' '\n' > file3
  4. rm -f file*.tmp
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-07-13 15:36 |只看该作者
原帖由 kwokcn 于 2009-7-13 15:25 发表
前面路径最好用dirname $0,别用pwd。

如果文件里没有空格和制表符,可以尝试这个:

xargs -n 4 < file1 > file1.tmp
xargs -n 4 < file2 > file2.tmp
paste file1.tmp file2.tmp | tr -s ' \t' '\n' > ...


谢谢指导...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP