Chinaunix
标题:
如何截取文件名并重组写入文件
[打印本页]
作者:
alex0516
时间:
2011-05-16 13:47
标题:
如何截取文件名并重组写入文件
大家好,最近遇到一个问题:
如何把一组文件名:dtst3424.pst;dsat2345.pst;erty1543.pst。。。。前4个字符截取下来(dtst,dsat,erty....),然后在他们前面加上“G",
最后把他们全部写到一个文件中。
上述如何在shell命令行中做到???
谢谢解答
作者:
where27
时间:
2011-05-16 13:56
如何获取这组文件名呢?这些文件是不是指定目录下的所有文件?
作者:
liion631818
时间:
2011-05-16 13:57
回复
1#
alex0516
首先问下怎样获取到那一组文件名的?
单个字符串处理:
echo G${filename:0:4} >file
复制代码
作者:
dzhxc
时间:
2011-05-16 13:57
echo "dtst3424.pst;dsat2345.pst;erty1543.pst"|awk 'BEGIN{FS=".";RS=";"}{print $1}'|sed 's/\([^0-9]*\).*/G\1/' >test.txt
作者:
dzhxc
时间:
2011-05-16 13:59
回复
3#
liion631818
厉害!
作者:
jason680
时间:
2011-05-16 13:59
大家好,最近遇到一个问题:
如何把一组文件名:dtst3424.pst;dsat2345.pst;erty1543.pst。。。 ...
alex0516 发表于 2011-05-16 13:47
$ echo 'dtst3424.pst;dsat2345.pst;erty1543.pst' | awk -F';' '{for(n=1;n<=NF;n++){print "G"substr($n,1,4)}}'
Gdtst
Gdsat
Gerty
作者:
yinyuemi
时间:
2011-05-16 13:59
回复
1#
alex0516
这?
echo 'dtst3424.pst;dsat2345.pst;erty1543.pst' |sed -r 's/(;*)(....)[^\.]*.pst/G\2,/g'
Gdtst,Gdsat,Gerty,
复制代码
作者:
justlooks
时间:
2011-05-16 14:11
$ echo "dtst3424.pst;dsat2345.pst;erty1543.pst"|perl -ne 's/\G([^;]{4})[^;]+(?:;|$)/G\1;/g;print $_,"\n"'
Gdtst;Gdsat;Gerty;
复制代码
作者:
alex0516
时间:
2011-05-16 15:49
回复
2#
where27
可以这样认为,就是所有文件
作者:
alex0516
时间:
2011-05-16 15:50
回复
3#
liion631818
这个filename是指?
作者:
alex0516
时间:
2011-05-16 16:02
回复
6#
jason680
我运行了一下,有问题啊。
有没有更加简单的用法?
谢谢
作者:
where27
时间:
2011-05-16 16:17
回复
11#
alex0516
find . -type f|while read file
do
echo "G${file:2:4}" >>newfile
done
复制代码
作者:
liion631818
时间:
2011-05-16 16:29
本帖最后由 liion631818 于 2011-05-16 16:30 编辑
回复
10#
alex0516
就是单个文件名,例如dtst3424.pst
首先你得告诉怎样获取要修改的文件名列表,是在一个目录下,还是一个文件中列出了所有要修改的文件名
如果是在当前目录下的所有文件改名的话,楼上的代码可以用
作者:
alex0516
时间:
2011-05-16 16:33
回复
13#
liion631818
谢谢。。
我需要在命令行来完成这个操作:ls *.pst |*****一系列操作,以达到截取所有.pst文件前4个字符,然后在所有这些字符前统一加上“G"。
不知道我描述是否清楚
作者:
liion631818
时间:
2011-05-16 16:40
本帖最后由 liion631818 于 2011-05-16 16:41 编辑
回复
14#
alex0516
for i in `ls *.pst`; do echo "G${i:0:4}";done
复制代码
12楼 老表的代码也行啊,在find 后面加 -nam "*.pst"
作者:
zooyo
时间:
2011-05-16 16:58
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2