分页: 1 / 1
find筛选问题
发表于 : 2011-03-05 8:35
由 liucheng1513
0010_01_00000091_1100_0_2010_03_07_06_06_58_new.txt
0010_01_00000095_1100_0_2010_03_07_06_06_58_new.txt
0010_01_00000099_1100_0_2010_03_07_06_06_58_new.txt
在/var/apache-tomcat-5.5.20/webapps/bustv/dl_stat/目录下有很多这样的文件,如何用find命令或其他方式筛选第36,37位(06)是09,10,11,12的文件,并把筛选出来的文件的_0_更改成_1_,要具体代码。
Re: find筛选问题
发表于 : 2011-03-05 9:44
由 trigger
管道给awk进一步筛选
Re: find筛选问题
发表于 : 2011-03-05 17:59
由 gzbao9999
代码: 全选
ls *.txt|while read i;
do
temp=`echo $i|cut -c 36-37` ;
if [ $temp -lt 12 ] && [ $temp -gt 9 ] ;then
echo $i;
newname=${i:0:22}1${i:23} ;
echo $newname;
mv $i $newname;
fi;
done
试试
Re: find筛选问题
发表于 : 2011-03-05 18:10
由 liucheng1513
提示: line 5: [: us: integer expression expected
Re: find筛选问题
发表于 : 2011-03-05 19:12
由 lilydjwg
[python]
import os
for i in os.listdir():
if i[35:37] in ('09', '10', '11', '12'):
os.rename(i, i.replace('_0_', '_1_'))
[/python]
Re: find筛选问题
发表于 : 2011-03-05 19:21
由 liucheng1513
五楼的这个怎么用啊,怎么把目录添加进去啊/var/apache-tomcat-5.5.20/webapps/bustv/dl_stat/
Re: find筛选问题
发表于 : 2011-03-05 19:30
由 lilydjwg
liucheng1513 写了:五楼的这个怎么用啊,怎么把目录添加进去啊/var/apache-tomcat-5.5.20/webapps/bustv/dl_stat/
你要是不懂 Python 的话就先 cd 过去吧。懂的话把目录名作为 listdir 的参数传过去就可以了
Re: find筛选问题
发表于 : 2011-03-05 19:32
由 liucheng1513
cd 过去后怎么用啊
Re: find筛选问题
发表于 : 2011-03-06 8:33
由 fnan
cd /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat/
for i in $(find . -name '0010_01*new.txt' |awk -F"_" '$9 ~/09|10|11|12/ {print $0}');do fname=$i; mv $fname ${fname/_0_/_1_}; done
Re: find筛选问题
发表于 : 2011-03-06 9:12
由 sk1418
这行应该可以吧?
代码: 全选
find /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat -name "*.txt" | awk -F'_' '$9~/[06|09|10|11]/ {print $0}'|xargs rename "_0_" "_1_"
Re: find筛选问题
发表于 : 2011-03-06 10:05
由 gzbao9999
liucheng1513 写了:提示: line 5: [: us: integer expression expected
说明你传过来的结果集合并不全是下面这种格式的
0010_01_00000091_1100_0_2010_03_07_06_06_58_new.txt
0010_01_00000095_1100_0_2010_03_07_06_06_58_new.txt
0010_01_00000099_1100_0_2010_03_07_06_06_58_new.txt
36、37位是字母的时候会提示那个问题
比如下面这个:
0010_01_00000099_1100_0_2010_03_07_ss_06_58_new.txt
过滤下你的结果集吧
Re: find筛选问题
发表于 : 2011-03-07 14:25
由 lilydjwg
liucheng1513 写了:cd 过去后怎么用啊
你下载并保存代码,然后
(python2 应该也行)。
Re: find筛选问题
发表于 : 2011-03-14 6:24
由 fnan
do
temp=`echo $i|cut -c 36-37` ;
if [ $temp -lt 12 ] && [ $temp -gt 9 ] ;then
这句有逻辑错误,09 不是整形,不能这样比较的。