❶ linux bash shell 如何修改部分文本
首先查看下你要修改的内容在多少行#cat -An file使用sed替换下就可以了比如将第5到10行中的184换成186#sed -i '5,10 s/184/186/g' file
❷ 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 yujingyujingyujing[[email protected] wolf]# 2、通过变量子串替换vi laolang.logwolf_20170806_1_wolf.jpgwolf_20170806_2_wolf.jpgwolf_20170806_3_wolf.jpgwolf_20170806_4_wolf.jpgwolf_20170806_5_wolf.jpgwolf_20170806_6_wolf.jpgwolf_20170806_7_wolf.jpgwolf_20170806_8_wolf.jpgwolf_20170806_9_wolf.jpgwolf_20170806_10_wolf.jpg[[email protected] data]# touch `cat laolang.log |tr "\n" " "`[[email protected] data]# lltotal 8316drwxr-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 catdrwxr-xr-x 2 root root 4096 Jul 29 06:00 day1drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2drwxr-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 $fwolf_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]# lltotal 8316drwxr-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 catdrwxr-xr-x 2 root root 4096 Jul 29 06:00 day1drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2drwxr-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]# lltotal 8316drwxr-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 catdrwxr-xr-x 2 root root 4096 Jul 29 06:00 day1drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2drwxr-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_.jpg3、修改扩展名把上面的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]# lsapache-maven-3.3.9 day1 laolang.log wolf_20170806_2_.jpg wolf_20170806_5_.jpg wolf_20170806_8_.jpgapache-maven-3.3.9-bin.tar.gz day2 wolf_20170806_10_.log wolf_20170806_3_.jpg wolf_20170806_6_.jpg wolf_20170806_9_.jpgcat day3 wolf_20170806_1_.jpg wolf_20170806_4_.jpg wolf_20170806_7_.jpg[[email protected] data]# lltotal 8316drwxr-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 catdrwxr-xr-x 2 root root 4096 Jul 29 06:00 day1drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2drwxr-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]# lltotal 8316drwxr-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 catdrwxr-xr-x 2 root root 4096 Jul 29 06:00 day1drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2drwxr-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初学者的书籍《Linux就该这么学》
❸ 如何在shell脚本中修改添加替换指定文件中的内容
1、启动Linux系统,用ssh工具连上Linux系统。
注意事项:
shell脚本在计算机科学中,是指“为使用者提供操作界面”的软件(命令解析器)。类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
❹ 如何在linux终端下用命令编辑一个文件并保存
1、首先进入到该文件所在的目录下,比如我要找learn/test1/file.txt这个文件:(ls表示查看该目录下的所内有文件)
❺ Linux 脚本编写 如何编写一个脚本,修改已有文件中的内容
实现的复方法如下:
1、第一步,打制开命令控制台以找到要编辑的文件,执行命令ls来查看下面的一些文件,在下面有一个index.php文件,如下图所示。
❻ Linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(6)linuxshell修改文件内容扩展阅读:
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 shell 写一个自动修改系统配置文件的文件
sed's/enabled/disabled/'/etc/selinux/config
需要用到sed 替换命令,enabled前面是哪个参数可以一并加上
❽ 使用shell脚本替换与更新文件里的一段内容,可以使用sed, awk等Linux工具
我也给个思路吧 —— 用sed根据地址范围截取文件内容,用Here documents方法添加新的多行内容,然后重组文件。具体步骤如下:
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;
2)将要添加的内容根据变量值展开,附加写入tmp文件;
3)截取test.xml文件</abcdef>行到结束行,附加写入tmp文件。
4)移动tmp文件覆盖test.xml文件。
代码:
#!/bin/sh$hostnames="host1,host2,host3…"$paragraph="many_strings"sed-n'1,/^<abcdef>/p'test.xml>tmpcat<<EOF>>tmpforhnamein`echo"$hostnames"|tr','''`doinsert$hnameinsert$paragraphdoneEOFsed-n'/^</abcdef>/,$p'test.xml>>tmpmvtmptest.xml
注意:
1) for a in b 结构中,b集合里的内容必需要空格分隔。所以我这里做了转换,用tr命令将逗号分隔改为了空格分隔。
2)第二个EOF必需顶格写,前面不能有空格。
❾ linux shell修改文本文件
^[[email protected]~]$catfile./usr/tool/software1/makefile./usr/tool/software2/temp/make.c[[email protected]~]$sed-r's/^.//;s#/([^/]*)$# 1#'file/usr/tool/software1makefile/usr/tool/software2/tempmake.c
如果要改原来的文件,加上回sed -i选项就可答以了。
❿ linux 编辑文件,与修改文件名
1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。