linux 编辑文件,与修改文件名???

linux 编辑文件,与修改文件名???,第1张

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。

2、其次,在linux命令行中输入:rename 1.txt 2.txt 1.txt,即可将1.txt重命名为2.txt。

3、接着,输入:vi 2.txt。

4、最后,按下回车,此时成功进到文件的vi编辑模式中,可对文件进行编辑。

可以用脚本实现批量文件名称修改,以perl脚本为例:

注释:

1. # touch rename.perl//创建一个文件:rename.perl , 内容如下。

2. # chmod +x rename.perl

3. # cp rename.perl /bin/

4. # rename.perl 's/gongxu/leibie/g' *//将目录中所有文件名中的 gongxu 替换为 leibie。

#!/usr/bin/perl -w

# rename - Larry's filename fixer

#用法: Perl表达式 [要处理的文件名]

$op = shift or die "Usage: rename expr [files]\n"

#如果没有给出要处理的文件名则从标准输入读入

chomp(@ARGV = <STDIN>) unless @ARGV

for (@ARGV) {

$was = $_

eval $op#对待处理的文件名($_)执行用户输入的Perl表达式$op

die $@ if $@#退出 , 如果eval出错

rename($was,$_) unless $was eq $_

}

rename脚本的经典实例示范:

% rename.perl 's/\.orig$//' *.orig #移除文件末尾的.orig

% rename.perl "tr/A-Z/a-z/ unless /^Make/" * #所有非Make打头的文件名大写转为小写

% rename.perl '$_ .= ".bad"' *.f #每个*.f文件后面追加一个.bad

% rename.perl 'print "$_: "s/foo/bar/ if =~ /^y/i' * #回显每个待处理的文件名, 等待输入, 如果用户输入以y或Y打头, 把文件名中的foo替换成bar

% find /tmp -name "*~" -print | rename.perl 's/^(.+)~$/.#$1/' #把 /tmp目录里面每个文件名末尾有~的文件名改成以.#开头

Linux下修改文件名有mv和rename。其中mv命令只能对单个文件重命名,这是mv命令和rename命令的在重命名方面的根本区别。

linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:

输入man rename 看到第一行是:

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

rename支持正则表达式

例子:

字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa

修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀

批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾

批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8556467.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存