+ -
当前位置:首页 → 问答吧 → 如何截取文件名并重组写入文件

如何截取文件名并重组写入文件

时间:2011-05-16

来源:互联网

大家好,最近遇到一个问题:

        如何把一组文件名:dtst3424.pst;dsat2345.pst;erty1543.pst。。。。前4个字符截取下来(dtst,dsat,erty....),然后在他们前面加上“G",


最后把他们全部写到一个文件中。

        上述如何在shell命令行中做到???


谢谢解答

作者: alex0516   发布时间: 2011-05-16

如何获取这组文件名呢?这些文件是不是指定目录下的所有文件?

作者: where27   发布时间: 2011-05-16

回复 alex0516


    首先问下怎样获取到那一组文件名的?

    单个字符串处理:
  1. echo G${filename:0:4} >file
复制代码

作者: liion631818   发布时间: 2011-05-16

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

回复 liion631818


    厉害!

作者: dzhxc   发布时间: 2011-05-16



QUOTE:
大家好,最近遇到一个问题:

        如何把一组文件名: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

作者: jason680   发布时间: 2011-05-16

回复 alex0516


    这?
  1. echo 'dtst3424.pst;dsat2345.pst;erty1543.pst' |sed -r 's/(;*)(....)[^\.]*.pst/G\2,/g'
  2. Gdtst,Gdsat,Gerty,
复制代码

作者: yinyuemi   发布时间: 2011-05-16