linux sed用法(转载)

本文介绍如何利用sed命令简化Linux环境下文件编辑流程,包括注释行、替换内容、插入行等常用操作,旨在提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.itpub.net/10037372/viewspace-700267/


linux,其实也就是查看和修改配置文件的过程。

刚开始接触linux,其实还是老实用vi来编辑文件,不过同样的过程重复多次,你就要想办法简化你的过程。sed绝对是一个好的命令或者工具,你不需要用vi打开文件就可以直接编辑。

sed的用法网上很多,我也没有看懂多少。现在就是会对着简单的例子来修改。不过这其实也够了。我也只需要一些简单的功能。

1:注释掉某一行

这个经常会遇到的,把配置文件里某一行注释掉。让他不起作用。

sed -i -e '121 s/^/#/' /usr/local/apache2/conf/httpd.conf

上面一行命令的意思,就是把121行注释掉。

sed -i -e '121 s/^/#/' -i -e '122 s/^/#/' /usr/local/apache2/conf/httpd.conf

这个就是把121,122行注释掉。

2:把注释#去掉,让这行起作用

sed -i 's/#ServerName www.example.com:80/ ServerName www.example.com:80/g' /usr/local/apache2/conf/httpd.conf

这个命令就是把这行的#去掉。其实就是一个替换的过程,

3:在某行的位置插入一行

如果只是在一个文档后面追加一行,那很简单。>> 就可以搞定。不过如果是在指定的某一行里插入。

sed -i "8 s/^/alias vi='vim'/" /root/.bashrc

就是在第8行插入 alias vi='vim'

4:如何插入一行,包括特殊字符 /

sed -i "58 s/^/AddType application\/x-httpd-php .php .phtml/" httpd.conf

这样就让apache支持php,简单多了。

下面的用法还没有测试。改天测试

Sed:

1、删除行首空格

   sed 's/^[ ]*//g' filename

   sed 's/^ *//g' filename

   sed 's/^[[:space:]]*//g' filename

2、行后和行前添加新行

   行后:sed 's/pattern/&\n/g' filename

   行前:sed 's/pattern/\n&/g' filename

   &代表pattern

3、使用变量替换(使用双引号)

    sed -e "s/$var1/$var2/g" filename

4、在第一行前插入文本

    sed -i '1 i\插入字符串' filename

5、在最后一行插入

sed -i '$ a\插入字符串' filename

6、在匹配行前插入

    sed -i '/pattern/ i "插入字符串"' filename

7、在匹配行后插入

   sed -i '/pattern/ a "插入字符串"' filename


### Linux Sed 命令详解 Sed(Stream Editor)是一个强大的流编辑器,在处理文本文件时非常有用。它能够执行各种操作,比如替换、删除、插入以及打印特定行的内容。 #### 替换操作 `sed` 的最常见用途之一就是替换字符串。以下是基本语法: ```bash sed 's/pattern/replacement/flags' filename ``` 其中 `pattern` 表示要匹配的模式,`replacement` 是替换成的目标字符串,而 `flags` 可选参数可以控制行为[^3]。例如: - 将文件中的所有 “foo” 替换为 “bar”,并只修改第一次出现的部分: ```bash sed 's/foo/bar/' input.txt ``` - 如果希望全局替换,则需加上标志 `g`: ```bash sed 's/foo/bar/g' input.txt ``` #### 删除操作 通过指定正则表达式来移除符合条件的一整行或多行数据。例如: - 移除包含单词 “example” 的每一行: ```bash sed '/example/d' input.txt ``` 这里 `/d` 指定的是删除动作[^3]。 #### 插入与追加 除了简单的替换外,还可以向文档中添加新内容。有两种方式实现这一点——插入(`i`) 和追加 (`a`)。 - 在每遇到关键字 “marker” 后面立即新增一行文字 “New Line After Marker.” : ```bash sed '/marker/a New Line After Marker.' input.txt ``` - 若要在前面增加而不是后面附加,则改用指令 `i` 而非 `a`: ```bash sed '/marker/i New Line Before Marker.' input.txt ``` #### 打印功能 有时我们只想查看某些部分而非整个档案;此时可利用 `-n p` 参数组合达成目的。 - 显示第5至7行之间的资料: ```bash sed -n '5,7p' input.txt ``` 以上只是简单介绍了几个常用的场景应用实例[^3]。实际上还有更多高级特性等待探索! ### 注意事项 当直接编辑原始档时务必小心谨慎,因为一旦失误可能导致不可逆的数据丢失风险。因此建议总是先备份重要文件再做任何改动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值