也想出现在这里? 联系我们

Linux命令之sed命令使用介绍

作者 : 小编 本文共2923个字,预计阅读时间需要8分钟 发布时间: 2022-11-4 共5.01K人阅读
也想出现在这里? 联系我们

sed是linux轻量级流编辑器,用于行的操作,主要用来数据的选取、替换、删除、新增等。从输入文件中一次一行的读取,

按顺序将列表中的命令应用到每一行,并将其编辑过的行,写到标准输出。

权 限:所有用户

位 置:/bin/sed

用 法:sed [-nefr] [动作] file

参数:

-n

不加-n的时候,sed处理的数据和不处理的都会输出,加上-n只会输出sed操作的行,

注意:与动作p和起来用,不要与其他动作一起用

-e

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

例如:sed -e \’s/aaa/b/g; s/aa/b/g\’ file 也即多个动作同时操作,注意中间的分号

-f

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

-r

sed的动作支持扩展的正则表达式(默认支持基础正则表达式)

-i

直接修改读取的文件内容

注意:多个选项参数一起用的时候,例如:sed -i -r … 不可以这样:sed -ir …

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

不见得会存在,一般代表选择动作的行数,如果动作是在5到15行之间进行替换,则"10,20c"

a 新增,当前行的下一行

sed \’2a hello world\’ file 输出在第2行之后插入hello world

sed \’2a hello world\\

my name is csdn\’ file

输出在2行下面插入两行分别为hello world 和my name is scdn

特别注意hello world 后面的"\\"

c 替换,是整行替换

sed \’3,6c hello csdn\’ file

输出把3至6行的只替换为 hello csdn(第3至6行只剩下一行hello csdn,不是3至6行的每一行都为hello csdn)

d 删除

sed \’3,6d\’ file
输出删除file的3至6行之后的内容

i 插入,当前行的上一行

与a动作类似,参照a动作用法

p 打印

sed -n \’2,5p\’ file 打印file的第2至5行

s 替换

sed \’s/oldString/newString/g\’ file oldString和newString支持基础正则表达式和扩展的正则表达式

cat -n nginx | sed \’1,99s/[0-9]\\{1,\\}\\.[0-9]\\{1,\\}\\.[0-9]\\{1,\\}\\.[0-9]\\{1,\\}//g\’ 把nginx日志的1至99行的第一个字段IP地址替换为空

结果为:

    91	 - - [15/Dec/2014:23:00:10 +0800],GET /identified?key=this-is-TMP-apikey&digest=914EBB2FD551844CBE15513C0126E6EE&digest-algorithm=ed2k&hash=9D37BB2988F26973371FAB028FEEEB93D5542300& HTTP/1.1,200 65,-,XMP Windows Client 4.9,-,ed2k://|file|ki141213.wmv|1119747351|914EBB2FD551844CBE15513C0126E6EE|h,00E04C377725NG4E,ki141213.wmv,1119747351
    92	 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-
    93	 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-
    94	 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-
    95	 - - [15/Dec/2014:23:00:10 +0800],-,400 0,-,-,-,-,-,-,-
    96	 - - [15/Dec/2014:23:00:10 +0800],GET /identified?key=this-is-TMP-apikey&digest=76BB7C854168DCD1BF15FCB92E4114FFD4CFE7DE&digest-algorithm=magnet&hash=28003498535& HTTP/1.1,200 65,-,Thunder Windows Client 7.9,-,magnet:?xt=urn:btih:76BB7C854168DCD1BF15FCB92E4114FFD4CFE7DE,EC55F9E92A5212LQ,ABP-209R,1067178826
    97	 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-
    98	 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-
    99	 - - [15/Dec/2014:23:00:10 +0800],-,400 0,-,-,-,-,-,-,-
   100	121.12.57.154 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

动作其他用法1:sed \’/模式/动作\’ 文件

可以指定某种模式的行进行动作操作,如下(这里的文件名是a,注意cat a的输出):

1、以p开头的行前加[TAB]

$ cat a
pa:11:a
sa:32:c
app:5:b
stort:1:d
pear:4:aa
hello:3:f

$ sed \'/^p/s/^/\\t/\' a
	pa:11:a
sa:32:c
app:5:b
stort:1:d
	pear:4:aa
hello:3:f

2、删除以a开头的行,(那么下面的输出,以a开头的行就没了)

$ sed \'/^a/d\' a
pa:11:a
sa:32:c
stort:1:d
pear:4:aa
hello:3:f

3、反向匹配(文件a中,输出只保留了a开头的行)

$ sed \'/^a/!d\' a
app:5:b

4、等价与grep -v (输出文件a中,非p字母开头的行)

$ grep  -v \'^h\' a
pa:11:a
sa:32:c
app:5:b
stort:1:d
pear:4:aa

$ sed -n \'/^h/!p\' a
pa:11:a
sa:32:c
app:5:b
stort:1:d
pear:4:aa

动作其他用法2:

也可以使用成对的正则表达式或行号与正则表达式的结合,来选取一定范围的行,如下:

1、sed \’1,3d\’ file 删除1至3行

2、sed -n \’1,3p\’ file 打印1至3行

3、sed \’1, /^$/d\’ file 删除范围:第一行至第一个空行 (注意格式)

4、sed \’/^$/, /^app/d\’ file 删除范围:第一个空行至以app开头的行

5、sed \’$d\’ file 删除最后一行

注意:反向匹配行,是动作前加感叹号 (!d !s !c等等)

如果前面的命令直接加入-i,则直接修改文件

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » Linux命令之sed命令使用介绍

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录