LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1195|回复: 8

关于文件合并

[复制链接]
发表于 2007-3-2 16:52:43 | 显示全部楼层 |阅读模式
一个目录下有这样的一些文件
A.0001
A.0002
A.0003
..........
A.6666

现在假如要求合并从A.0005一直到A.5555的文件的内容,然后写入一个新的文件result.txt中去,该怎么来写这个循环呢?
发表于 2007-3-2 23:10:46 | 显示全部楼层
#!/bin/bash

num=4

while [ $num -lt 5556 ]
do
num=$(($num+1))
numbak=$num

if [ $num -lt 10 ];then
        num=000$num
elif [ $num -lt 100 ];then
        num=00$num
elif [ $num -lt 1000 ];then
        num=0$num
fi

cat "A.$num" >> result.txt
num=$numbak

done

#請多多指教
回复 支持 反对

使用道具 举报

发表于 2007-3-3 01:56:18 | 显示全部楼层
for i in $(seq -w 0005 5555);do cat A.$i>>result.txt;done
回复 支持 反对

使用道具 举报

发表于 2007-3-3 12:19:13 | 显示全部楼层
Post by jiuny0209
for i in $(seq -w 0005 5555);do cat A.$i>>result.txt;done


好帖!

弱问一句,seq咋用?
回复 支持 反对

使用道具 举报

发表于 2007-3-3 15:30:29 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-3-3 16:33:32 | 显示全部楼层
用seq的时候要小心!

seq --version
seq (GNU sh-utils) 2.0.11
Written by Ulrich Drepper.

Copyright (C) 2000 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

--------------------------------
seq -w 0005 0009
5
6
7
8
9
------------------------------
seq -w 0003 0010
03
04
05
06
07
08
09
10
---------------------------------


注意到这些问题了么?
当然在这个case里面是没有关系的。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 16:37:15 | 显示全部楼层
前面的0可以省略么?
回复 支持 反对

使用道具 举报

发表于 2007-3-3 16:42:05 | 显示全部楼层
-w目的是用来等宽的现实,宽度应该由最大的那个决定:

seq -w 3 10
03
04
05
06
07
08
09
10

作为对比:

seq 3 10
3
4
5
6
7
8
9
10

所以前面的0可以省略
回复 支持 反对

使用道具 举报

发表于 2007-3-3 20:00:21 | 显示全部楼层

Thx
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表