1.批量创建00n形式目录:
#!/bin/bash
no=001
while [ "$no" -le "100" ]
do
printf "%03d\n" $no | xargs -i mkdir test{}
no=`expr $no + 1`;
done
2.批量创建文件:
目录下文件如下:
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110312.112005.zfxx.00.10.8191351.16491.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110312.175006.xtgl.00.10.8192009.16492.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110312.180005.zfyj.00.10.8192026.16493.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110312.181005.zfgw.00.10.8192043.16494.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110312.182005.zfxx.00.10.8192064.16495.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.105005.xtgl.00.10.8193680.16496.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.110006.zfyj.00.10.8193697.16497.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.111005.zfgw.00.10.8193718.16498.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.112005.zfxx.00.10.8193739.16499.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.175005.xtgl.00.10.8194393.16500.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.180005.zfyj.00.10.8194410.16501.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.181006.zfgw.00.10.8194427.16502.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110313.182005.zfxx.00.10.8194448.16503.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110314.105005.xtgl.00.10.8196381.16504.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110314.110005.zfyj.00.10.8196401.16505.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110314.111005.zfgw.00.10.8196425.16506.tar.bz2
-rw-r--r-- 1 root root 0 Mar 14 14:45 20110314.112005.zfxx.00.10.8196446.16507.tar.bz2
如何批量在同目录下新建同名的sent文件
如: 20110312.111005.zfgw.00.10.8191323.16490.tar.bz2 新建一个同名文件为: 20110312.111005.zfgw.00.10.8191323.16490.sent
touch `ls *tar.bz2|sed 's/.tar.bz2/.sent/g'`
3.批量修改文件名:
有一堆文件: adfab-afdafd-afda-12-34.data adfab-afdafd-afda-12-34.datb adfa-ewee-fdaf-12-34.datb afdafd-ad-ad-23-35.data 。。。。。。。。 想变成如下: adfab-afdafd-afda-12-1.dat adfab-afdafd-afda-12-2.dat adfa-ewee-fdaf-12-3.dat afdafd-ad-ad-23-4.dat 。。。。。。。。。 要求把后缀改成dat,.dat前面的数字按顺序排一下,只修改.dat前面的数值即可。 注意该目录下还有其他文件,所以做处理时一定要加*.dat*匹配一下 ls|awk -F"[-.]" -vOFS="-" '{i=$0;NF--;$NF=++j;system("mv "i" "$0".dat")}' (j=0;for i in *;do : $((j++));mv -i "$i" "${i%-*}"-$j.dat;done) 此问题解决了,谢谢楼上的各位,集合各位的精华,修改了一下,可以在我的环境实现了 counter=1 for file in `ls *.dat*` do newfile=`echo $file|sed "s/\(-\)\([0-9]*\)\(.dat\)/\1${counter}\3/"` mv $file $newfile counter=`expr $counter + 1` done exit 0