❶ linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(1)linux批量替换文件名扩展阅读:
Shell编程的常用技巧:
一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:
1、只存在一个该输入字符开头的命令或路径,此时自动补全;
2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;
3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。
二、历史命令
1、history命令可以显示历史执行过的命令;
2、使用!+序号执行该序号对应的命令;
3、使用!+字符执行该字符开头的最后一次执行的指令。
三、命令别名
1、实现别名:alias ddd="df -Th";
2、删除别名:unalias ddd;
3、显示所有别名命令列表:alias;
4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。
四、重定向
1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;
2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;
3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;
4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;
5、重定向标准错误:2>> 标准错误信息追加到指定文件;
6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。
❷ Linux批量修改指定层级文件夹名字以及替换命令
在root目录下find/root/ooo/*-nameaaa|xargsrenameaaabbb
❸ linux 修改当前目录包含子目录 下 aaa 开头的目录名及文件名 替换为 bbb开头目录名及文件名
用find+exec命令结合rename命令可实现文件名“部分替换”
因为存有目录的替换,目录替换后,就无法继续搜索原目录了,所以,需要多次执行才能完成所有目录的替换。
while[1]dofind.-name"aaa*"-execrenameaaabbb{};if[$?-eq0]#如果替换中有错误,则上面命令执行结果会返回非0thenbreak;fidone#注意,此命令缺陷是,当同一目录下,有aaa123文件,也有bbb123文件,则原bbb123文件将会被aaa123所覆盖!!
rename命令格式说明:
renamefromtofile…
第一个参数from:被替换掉的字符串第二个参数to:替换成的字符串第三个参数file:匹配要替换的文件模式 可以是单文件,也可以是匹配模式(多文件,如aaa* aaa? aaa?? ) *匹配多字符, ?匹配单字符
❹ Linux 下使用 shell 批量修改文件名的三种方法
1、通过sed替换 [[email protected] wolf]# find / -type f -name wolf.log /wolf.log /tmp/wolf.log /root/wolf/wolf.log [[email protected] wolf]# sed -i 's#wolf#yujing#g' find / -type f -name wolf.log [[email protected] wolf]# find / -type f -name "wolf.log" | xargs cat yujing yujing yujing [[email protected] wolf]# 2、通过变量子串替换 vi laolang.log wolf_20170806_1_wolf.jpg wolf_20170806_2_wolf.jpg wolf_20170806_3_wolf.jpg wolf_20170806_4_wolf.jpg wolf_20170806_5_wolf.jpg wolf_20170806_6_wolf.jpg wolf_20170806_7_wolf.jpg wolf_20170806_8_wolf.jpg wolf_20170806_9_wolf.jpg wolf_20170806_10_wolf.jpg [[email protected] data]# touch cat laolang.log |tr "\n" " " [[email protected] data]# ll total 8316 drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-3.3.9 -rw-r–r– 1 root root 8491533 Jul 8 07:23 apache-maven-3.3.9-bin.tar.gz -rw-r–r– 1 root root 0 Jul 29 14:16 cat drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1 drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2 drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3 -rw-r–r– 1 root root 251 Jul 29 14:16 laolang.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_10_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_1_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_2_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_3_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_4_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_5_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_6_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_7_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_8_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_9_wolf.jpg [[email protected] data]# f=wolf_20170806_10_wolf.jpg [[email protected] data]# echo $f wolf_20170806_10_wolf.jpg [[email protected] data]# echo ${f%wolf*.jpg} wolf_20170806_10_ [[email protected] data]# mv $f echo ${f%wolf*.jpg}.jpg [[email protected] data]# ll total 8316 drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-3.3.9 -rw-r–r– 1 root root 8491533 Jul 8 07:23 apache-maven-3.3.9-bin.tar.gz -rw-r–r– 1 root root 0 Jul 29 14:16 cat drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1 drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2 drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3 -rw-r–r– 1 root root 251 Jul 29 14:16 laolang.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_10_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_1_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_2_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_3_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_4_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_5_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_6_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_7_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_8_wolf.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_9_wolf.jpg [[email protected] data]# for f in ls *wolf.jpg ;do mv $f echo ${f%wolf*.jpg}.jpg;done [[email protected] data]# ll total 8316 drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-3.3.9 -rw-r–r– 1 root root 8491533 Jul 8 07:23 apache-maven-3.3.9-bin.tar.gz -rw-r–r– 1 root root 0 Jul 29 14:16 cat drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1 drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2 drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3 -rw-r–r– 1 root root 251 Jul 29 14:16 laolang.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_10_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_1_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_2_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_3_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_4_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_5_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_6_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_7_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_8_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_9_.jpg 3、修改扩展名 把上面的jpg更换为log [[email protected] data]# f=wolf_20170806_10_.jpg [[email protected] data]# echo ${f/%jpg/log} wolf_20170806_10_.log [[email protected] data]# mv $f ${f/%jpg/log} [[email protected] data]# ls apache-maven-3.3.9 day1 laolang.log wolf_20170806_2_.jpg wolf_20170806_5_.jpg wolf_20170806_8_.jpg apache-maven-3.3.9-bin.tar.gz day2 wolf_20170806_10_.log wolf_20170806_3_.jpg wolf_20170806_6_.jpg wolf_20170806_9_.jpg cat day3 wolf_20170806_1_.jpg wolf_20170806_4_.jpg wolf_20170806_7_.jpg [[email protected] data]# ll total 8316 drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-3.3.9 -rw-r–r– 1 root root 8491533 Jul 8 07:23 apache-maven-3.3.9-bin.tar.gz -rw-r–r– 1 root root 0 Jul 29 14:16 cat drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1 drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2 drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3 -rw-r–r– 1 root root 251 Jul 29 14:16 laolang.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_10_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_1_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_2_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_3_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_4_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_5_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_6_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_7_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_8_.jpg -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_9_.jpg [[email protected] data]# for f in ls *.jpg ;do mv $f ${f/%jpg/log} ;done [[email protected] data]# ll total 8316 drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-3.3.9 -rw-r–r– 1 root root 8491533 Jul 8 07:23 apache-maven-3.3.9-bin.tar.gz -rw-r–r– 1 root root 0 Jul 29 14:16 cat drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1 drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2 drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3 -rw-r–r– 1 root root 251 Jul 29 14:16 laolang.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_10_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_1_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_2_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_3_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_4_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_5_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_6_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_7_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_8_.log -rw-r–r– 1 root root 0 Jul 29 14:16 wolf_20170806_9_.log 以上就是本次分享的全部内容,现在想要学习的程序员欢迎关注六星社区,获取更多技能与教程。
❺ linux 批量替换某文件夹下的文件名,文件内容,文件夹名称
1.用for灵活,文件名中字符替换,加日期等都可先用下面语句测试一下foriin*aa*;donn=$(echo$i|sed's/aa/bb/');echo"$nn";done保险起见,只拷贝foriin*aa*;donn=$(echo$i|sed's/aa/bb/');cp"$i""$nn";done这是更名,慎用foriin*aa*;donn=$(echo$i|sed's/aa/bb/');mv"$i""$nn";done2.用rename简洁先用-n开关测试rename-n's/aa/bb/'*测试无误去掉-n进行更名rename's/aa/bb/'*
❻ linux批量替换指定文件夹下的所有文件名(包括子目录下的文件)中的字符串
思路:先找到文件,再替换find /yourfolder/subdir -exec {sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`}\;
❼ linux批量替换文件夹名,文件名,文件内容命令
1.批量改名采用命令rename rename 语法:rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]-v表示显示详细信息,-n表示不实际执行替换,只是看哪些文件会受影响。 -f 表示强制,不管是否有重名。 perlexpr是perl语法的表达式, files则是匹配项。因此,该命令执行结果与perlexpr有关,不一定就是改文件名。实例: 将所有文件名*.html 改为对应的.htmrename 's//.html$//.htm$/' *.html 去bak后缀rename 's//.bak$//' *.bak 将文件名大写改为小写rename 'y/A-Z/a-z/' * 但rename不能递归修改。 2.递归改名,用find+rename将文件名的abc改为xyzfind . -name "abc*" -exec rename 's/abc/xyz/' {} /;该命令可以将当前目录下所有子目录的文件都改名。 3.内容替换,用find+sed将所有ablo 替换为ablozhoufind . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} /;sed 命令 -i 表示 –in-place,文件原地替换。-e 后跟替换表达式
❽ linux在vim下怎么批量替换或者注释
方法一 块选择模式
插入注释:
用v进入virtual模式
在10 – 20行添加 # 注释:10,20s/^/#/g在10 – 20行删除 # 注释:10,20s/^/#/g注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数。
❾ linux批量替换文件夹名,文件名,文件内容命令
1.用for灵活,文件名中字符替换,加日期等都可先用下面语句测试一下foriin*aa*;doNN=$(echo$i|sed's/aa/bb/');echo"$NN";done保险起见,只拷贝foriin*aa*;doNN=$(echo$i|sed's/aa/bb/');cp"$i""$NN";done这是更名,慎用foriin*aa*;doNN=$(echo$i|sed's/aa/bb/');mv"$i""$NN";done2.用rename简洁先用-n开关测试rename-n's/aa/bb/'*测试无误去掉-n进行更名rename's/aa/bb/'*
❿ Linux批量替换多个文件中字符串
linux批量替换多个文件中字符串linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的字符串。sed-is/原字符串/新字符串/g`grep原字符串-rl所在目录`例如:我要把mahuinan替换为huinanma,执行命令:sed-is/mahuinan/huinanma/g'grepmahuinan-rl/www'这是目前linux最简单的批量替换字符串命令了!具体格式如下:sed-is/oldString/newString/g`grepoldString-rl/path`实例代码:sed-is/大小多少/日月水火/g`grep大小多少-rl/usr/aa`sed-is/大小多少/日月水火/g`grep大小多少-rl./`
未经允许不得转载:山九号 » linux批量替换文件名|Linux下的shell编程 如何替换文件中的内容