linux sed命令使用

 # sed [-nefr] [动作]  基本格式是这样的。

其中的参数:

     -n :使用安静模式,在一般的sed的用户中,所有来自stdin 的数据一本都会被列出在屏幕中,但如果加上-n 后,则只有经过sed 特殊处理的那一行才会被列出来。

    -e:直接在命令行模式上进行sed的动作编辑。

    -f :直接将sed的动作写在一个文件内,- f filename 则可以执行filename 内的sed 动作。

    -r :sed的动作支持的是扩展型正在表达式的语法。

    -i :直接修改读取的文件内容,而不是有屏幕输出。


动作说明:[n1,[n2]] function

n1 ,n2 :不见得存在,一般代表选择进行的动作的行数。

function:

    a: 新增,a 的后面可以接字符串,而这些字符串会在新的一行出现。

    c:替换,c的后面可以接字符串,这些字符串可以替换n1,n2 之间的行。

      d:  删除,因为是删除,所有后面不接任何参数。

    i :插入,i的后面可以直接接字符串,字符串会出现在新的一行。

    p: 打印,也就是将某个选择的数据打印出来。 通常p会与参数-n 一起使用。

   s: 替换,可以直接进行替换工作。通常这个s的动作可以搭配,例如: 1,20s/old/new/g 


以行单位删除或新增:例如

nl /etc/passwd | sed '2,5d'

nl /etc/passwd | sed '2a drink tea'

在第二行前加上一行drink tea  :nl /etc/passwd | sed '2i drink tea'

新增很多行 直接一点要 \ 来进行新增。

在第二行后加上多行字符串  :nl /etc/passwd | sed '2i drink tea..... \> drink teer ?'  新增  drink tea..... 和 drink teer ?


以行为单位替换:

nl  /etc/passwd |sed ' 2,5c No 2-5 number'      2-5行的内容替换成 N0 2-5 number


想列出那几行: nl  /etc/passwd |sed  -n '5,7p'     5到7行

sed 's /要替换的字符串 /新的字符串/g'



cat /etc/man.config |grep 'man'

cat /etc/man.config |grep 'man' |sed 's /#.*$//g'

cat /etc/man.config |grep 'man' |sed 's /#.*$//g' |\ >sed '/^$/d'  删除空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值