由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请教一格批量文件名修改的问题哈
相关主题
怎么吧一个目录下的所有文件名改成大写?有没有可能写个ftp的脚本?
写了修改文件名的scripthow to rename files -- waiting on line
请问高手们linux中怎么判断一串数字符合电话号码?问个grep正则匹配的问题
命令输出里的文件名空格在 make 里面怎么保留?靠,910升级后竟然不能用无密码ssh了
怎样用perl批量重命名文件 (转载)script question
substring 的问题如何实现这个想法,关于修改txt文件的
请问一个awk和sed连用的问题一行命令找出html中所有img src?
Help --- Parsing posted JSON data请问一个awk的问题
相关话题的讨论汇总
话题: model10话题: model100话题: rename话题: echo话题: perl
进入Linux版参与讨论
1 (共1页)
e********r
发帖数: 2352
1
文件包含很多类似的文件名,但是最有都以'*'结尾,想要把'*'去掉
例如:
model10*
model100*
...
需要重命名为:
model10
model100
...
for i in `ls`; do mv -f $i `echo $i | sed 's/.$/_/'`; done
只能把文件名改为:
model1_*
model10_*
对'*'无能为力
请教如何重命名,'*'总是默认为正则表达式的一部分.
v*****u
发帖数: 92
2
* 到底是何物?
这个很重要

【在 e********r 的大作中提到】
: 文件包含很多类似的文件名,但是最有都以'*'结尾,想要把'*'去掉
: 例如:
: model10*
: model100*
: ...
: 需要重命名为:
: model10
: model100
: ...
: for i in `ls`; do mv -f $i `echo $i | sed 's/.$/_/'`; done

e********r
发帖数: 2352
3
'*'就是一个字符star

【在 v*****u 的大作中提到】
: * 到底是何物?
: 这个很重要

v*****u
发帖数: 92
4
转义不就可以了
sed 's/\*//g'

【在 e********r 的大作中提到】
: '*'就是一个字符star
v*****u
发帖数: 92
5
如果只有一个 '*'
sed也不用,直接字符串截取
echo ${i%\*}

【在 v*****u 的大作中提到】
: 转义不就可以了
: sed 's/\*//g'

xt
发帖数: 17532
6
看见/\就很不舒服,用这个:
sed 's%*$%$%g"

【在 v*****u 的大作中提到】
: 转义不就可以了
: sed 's/\*//g'

S*A
发帖数: 7142
7
像这种我一般都写个 python script 来做。
e********r
发帖数: 2352
8
I tried all your guys' method. They all do not work. The reason is:
echo modle10* will show:
model10 model100 model101 model102 ...
then
sed 's/\*//g' will cause:
model10 and modle10 has same name
model100 and model100 has same name
modle101 and model101 has same name

【在 v*****u 的大作中提到】
: 转义不就可以了
: sed 's/\*//g'

r*****z
发帖数: 906
9
一般的系统上都有个rename的命令,是一个perl脚本
rename 's/\*//' model10*\*
就可以改名了

【在 e********r 的大作中提到】
: 文件包含很多类似的文件名,但是最有都以'*'结尾,想要把'*'去掉
: 例如:
: model10*
: model100*
: ...
: 需要重命名为:
: model10
: model100
: ...
: for i in `ls`; do mv -f $i `echo $i | sed 's/.$/_/'`; done

e********r
发帖数: 2352
10
Thank you for reply.
Could you help me show
model10*
model100*
model101*
If I use
echo model10\*
It shows:
model10*
echo model10*\*
It shows:
model10**
echo model10*
model10 model100 model101

【在 r*****z 的大作中提到】
: 一般的系统上都有个rename的命令,是一个perl脚本
: rename 's/\*//' model10*\*
: 就可以改名了

相关主题
substring 的问题有没有可能写个ftp的脚本?
请问一个awk和sed连用的问题how to rename files -- waiting on line
Help --- Parsing posted JSON data问个grep正则匹配的问题
进入Linux版参与讨论
r*****z
发帖数: 906
11
你为什么一定要用echo测试呢?
你如果有别的目的就直说,如果光是改名,就用我给出来的命令

【在 e********r 的大作中提到】
: Thank you for reply.
: Could you help me show
: model10*
: model100*
: model101*
: If I use
: echo model10\*
: It shows:
: model10*
: echo model10*\*

e********r
发帖数: 2352
12
I tried your method. It does not work. That is why I want to use echo.
Thank you.

【在 r*****z 的大作中提到】
: 你为什么一定要用echo测试呢?
: 你如果有别的目的就直说,如果光是改名,就用我给出来的命令

r*****z
发帖数: 906
13
$touch model10* model100* model1000*
$ls
model10* model100* model1000*
$rename 's/\*//' model10*\*
$ls
model10 model100 model1000

【在 e********r 的大作中提到】
: I tried your method. It does not work. That is why I want to use echo.
: Thank you.

r*****z
发帖数: 906
14
此外,你得先确认一下你系统所带的rename的确是那个perl脚本
有的发行版可能提供的是其它版本

【在 r*****z 的大作中提到】
: $touch model10* model100* model1000*
: $ls
: model10* model100* model1000*
: $rename 's/\*//' model10*\*
: $ls
: model10 model100 model1000

e********r
发帖数: 2352
15
Command in my system is system command rename:
rename from to file ...
It is not Perl script, could you tell me where I can download that Perl
script
Thank you

【在 r*****z 的大作中提到】
: 此外,你得先确认一下你系统所带的rename的确是那个perl脚本
: 有的发行版可能提供的是其它版本

r*****z
发帖数: 906
16
如果你用的是D系发行版,比如Debian和Ubuntu,这个rename就是perl这个包
自己带的prename
如果你用的发行版的perl包里面没有这个,可能你得手工下载个debian的perl包,
然后把prename这个文件解压缩出来用

【在 e********r 的大作中提到】
: Command in my system is system command rename:
: rename from to file ...
: It is not Perl script, could you tell me where I can download that Perl
: script
: Thank you

e********r
发帖数: 2352
17
My system is Mandriva, rename command is not a perl script. I will download
it.
Thank you.

【在 r*****z 的大作中提到】
: 如果你用的是D系发行版,比如Debian和Ubuntu,这个rename就是perl这个包
: 自己带的prename
: 如果你用的发行版的perl包里面没有这个,可能你得手工下载个debian的perl包,
: 然后把prename这个文件解压缩出来用

r******s
发帖数: 925
18
我也想说这个

【在 S*A 的大作中提到】
: 像这种我一般都写个 python script 来做。
T********r
发帖数: 6210
19
rename '*' '' *

【在 e********r 的大作中提到】
: 文件包含很多类似的文件名,但是最有都以'*'结尾,想要把'*'去掉
: 例如:
: model10*
: model100*
: ...
: 需要重命名为:
: model10
: model100
: ...
: for i in `ls`; do mv -f $i `echo $i | sed 's/.$/_/'`; done

1 (共1页)
进入Linux版参与讨论
相关主题
请问一个awk的问题怎样用perl批量重命名文件 (转载)
在emacs中怎么按照某种格式进行替换?substring 的问题
sed里面正则表达式匹配字符越少越好怎么写?请问一个awk和sed连用的问题
python c/c++ question.Help --- Parsing posted JSON data
怎么吧一个目录下的所有文件名改成大写?有没有可能写个ftp的脚本?
写了修改文件名的scripthow to rename files -- waiting on line
请问高手们linux中怎么判断一串数字符合电话号码?问个grep正则匹配的问题
命令输出里的文件名空格在 make 里面怎么保留?靠,910升级后竟然不能用无密码ssh了
相关话题的讨论汇总
话题: model10话题: model100话题: rename话题: echo话题: perl