编写一个简单的脚本,自动重命名一些文件.作为一个例子,我们希望将文件*001.jpg重命名为用户定义的字符串+ 001.jpg(例如:MyVacation20110725_001.jpg)此脚本的用法是让数码相机照片具有合理的文件名.
我需要为此编写一个shell脚本.有人可以建议如何开始吗?
重命名文件夹中所有文件的前缀为"Unix_",即假设一个文件夹有两个文件a.txt和b.pdf,那么它们都应该从一个命令重命名为Unix_a.txt和Unix_b.pdf
我正在使用托管的Linux机器,所以我没有权限写入/usr/lib目录.
当我尝试通过以下方式安装CPAN模块时:
perl Makefile.PL
make test
make install
Run Code Online (Sandbox Code Playgroud)
该模块被解压缩到一个blib/lib/文件夹.我保留了use
blib/lib/ModuleName但是编译器仍然无法找到模块.我已经尝试将.pm文件复制到本地目录并保留
require ModuleName但仍然给我一些错误.
如何将模块安装到其他目录并使用它?
我有一组名为的文件:
Friends - 6x03 - Tow Ross' Denial.srt
Friends - 6x20 - Tow Mac and C.H.E.E.S.E..srt
Friends - 6x05 - Tow Joey's Porshe.srt
Run Code Online (Sandbox Code Playgroud)
我想像下面那样重命名它们
S06E03.srt
S06E20.srt
S06E05.srt
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能在linux终端上完成工作?我已经安装了重命名但是U使用以下方法获得错误:
rename -n 's/(\w+) - (\d{1})x(\d{2})*$/S0$2E$3\.srt/' *.srt
Run Code Online (Sandbox Code Playgroud) 我试图遍历目录中的所有文件.
我想在每个文件上做一些事情(将其转换为xml,不包括在示例中),然后将文件写入新的目录结构.
for file in `find /home/devel/stuff/static/ -iname "*.pdf"`;
do
echo $file;
sed -e 's/static/changethis/' $file > newfile +".xml";
echo $newfile;
done
Run Code Online (Sandbox Code Playgroud)
我希望结果如下:
$ file => /home/devel/stuff/static/2002/hello.txt
$ newfile => /home/devel/stuff/changethis/2002/hello.txt.xml
我该如何改变我的sed线?
我正在寻找仅在当前目录中批量重命名文件并从文件名末尾删除某些字符串.
样品:
foo-bar-(ab-4529111094).txt
foo-bar-foo-bar-(ab-189534).txt
foo-bar-foo-bar-bar-(ab-24937932201).txt
Run Code Online (Sandbox Code Playgroud)
输出应如下所示:
foo-bar.txt
foo-bar-foo-bar.txt
foo-bar-foo-bar-bar.txt
Run Code Online (Sandbox Code Playgroud)
我想删除-(ab-2492201)每个文件名末尾的字符串,知道数字的长度可能会有所不同.
Perl正则表达式优于模块而不使用任何实用程序,并且对于bash oneliner命令是高度优选的.
如何在Linux上的Perl和Bash Shell中实现这一点?有兴趣知道两种解决方案.