Linux下的shell编程 如何替换文件中的内容

Linux下的shell编程 如何替换文件中的内容,第1张

可以这样做:

方法1:sed -i 's/被替换的内容/要替换成的内容/' file

方法2:sed 's/被替换的内容/要替换成的内容/g' file >file.out;mv file.out file。

扩展资料:

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 sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复 *** 作、编写转换程序等。

语法

参数说明:

regular_express.txt 文件内容如下:

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !

:q:q

利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test:

由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增 # This is a test!

sed 的 -i 选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!

sed -i 常见用法(直接对文本文件进行 *** 作的)

替换掉每行的第一个字符串

替换掉所有的字符串 sed -i 's/原字符串/新字符串/g' file

去掉 “行首” 带“@”的首字母@

特定字符串的行前插入新行

特定字符串的行后插入新行

特定字符串的删除

假设文件名a.txt,就一行

name=xxx的话,

A=`awk -F"=" '{print $2}' a.txt`sed -i "s/$A/baidu/" a.txt

#下条命令同理

sed -i "s/$(awk -F"=" '{print $2}' a.txt)/baidu/" a.txt或者

A=`cut -d"=" -f 2 a.txt`sed -i "s/$A/baidu/" a.txt

sed -i "s/$(cut -d"=" -f 2 a.txt)/baidu/" a.txt解释:

截取等号后面的值

并赋予变量A,将变量A替换成字符串baidu

注意如果sed

替换

需要引入shell

变量的话,需要将单引变成双引号

进行弱转义。否则命令报错。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存