精华内容
下载资源
问答
  • Linux sed基本使用

    2020-06-06 19:54:16
    linux三剑客之sed,实现数据的替换,删除,增加,选取等(以行为单位进行处理) sed 常用参数 -n:取消默认输出 一般与-p一起使用 -i:直接修改文件内容 -r:使用正则 取行 # sed -n '/匹配的内容/p' 过滤出指定内容...

    文章来源:王琦的个人博客-Linux sed基本用法 ,互联网打杂,喜欢多语言编程,记录一些知识碎片,分享一些心得。

    linux三剑客之sed,实现数据的替换,删除,增加,选取等(以行为单位进行处理)

    sed 常用参数

    • -n:取消默认输出 一般与-p一起使用
    • -i:直接修改文件内容
    • -r:使用正则

    取行

    # sed -n '/匹配的内容/p'	过滤出指定内容的行
    # 取出指定行
    sed -n '20p'|'20p,30p'		# 取出文件第几行
    
    sed -n '/php/,/^linux/p'	# 取出包含php,linux的行
    
    sed -rn '/php|linux/p'		# 正则查找包含php或linux的行
    
    sed -n '1p;2p;3p'			# 取出1,2,3行
    
    # 过滤空行的几种方法
    grep -v '^$' file
    sed '/^$/d' file
    sed -n /'^$/!p' file
    awk '!/^$/' file
    
    

    增加

    sed '3i content' file	# 指定行前面增加内容
    
    sed '3a content' file	# 后面增加内容
    
    sed '$a content\ncontent1'	# 最后一行增加,多行加上\n
    
    sed -n '$p' file	# 显示最后1行,$p表示最后一行
    

    其他命令:cat echo>>

    删除

    # 删除
    # ^$ 表示空行  
    # /要匹配的内容/  d表示删除,sed后不加参数默认输出执行后果的内容。
    
    sed '/^$/d' file	# 删除空行
    
    sed '$d' file	# 删除最后一行
    
    sed '1d' file	# 删除第一行
    
    sed '/php/d' file	# 删除带有php的行
    
    sed '1,4d' file		# 删除1-4行
    
    

    替换

    sed -i 's#要查找的内容#替换的内容#g' file
    
    # 获取网卡信息 取出第二行 替换内容
    ifconfig eth0 | sed -n '2p'|sed 's#inet#ip#g'
    
    # 简写方式:2表示去第几行后面是替换命令
    ...| sed -n '2s#inet#ip#g'
    			
    # 取出网卡ip
    ifconfig eth0|sed -rn '2s#^.*dr:(.*) Bc.*$#\1#gp' 
    
    展开全文
  • sed 匹配删除

    2018-01-09 14:25:00
    linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: #匹配行前加 sed -i '/...

    linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。

    一、在某行的前一行或后一行添加内容

    具休操作如下:

     

    #匹配行前加
    sed -i '/allow 361way.com/iallow www.361way.com' the.conf.file
    #匹配行前后
    sed -i '/allow 361way.com/aallow www.361way.com' the.conf.file

    而在书写的时候为便与区分,往往会在i和a前面加一个反加一个反斜扛 。代码就变成了:

    sed -i '/2222222222/a\3333333333' test.txt
    sed -i '/2222222222/i\3333333333' test.txt

     

    这就就可以很方便的看出要在某一行前或某一行后加入什么内容 。不过经常我记不住a 、i 那个是前那个是后。我的记法是a = after ,i = in front 。这样就知道 i 是前,a 是后了。不过官方的man文件里不是这样解释的,man文件里是这样解释的:

     

    a
    text   Append text, which has each embedded newline preceded by a backslash.
    i
    text   Insert text, which has each embedded newline preceded by a backslash.

    而且其可以配合find查找的内容处理,如下:

    find . -name server.xml|xargs sed -i '/directory/i       <!--'
    find . -name server.xml|xargs sed -i '/pattern="%h/a       -->'

     

    二、在某行(指具体行号)前或后加一行内容

     

     

    sed -i 'N;4addpdf' a.txt
    sed -i 'N;4ieepdf' a.txt 

    这里指定的行号是第四行 。

     

     

    三、删除指定行的上一行或下一行

     

    删除指定文件的上一行
    sed -i -e :a -e '$!N;s/.*n(.*directory)/1/;ta' -e 'P;D' server.xml
    删除指定文件的下一行
    sed -i '/pattern="%/{n;d}' server.xml 

     

     

    这个写起来有点长,一般如果不是shell里的需要,我更喜欢用vim去处理。另外需要注意的是,在vim里如果替换的内容里tab这样的符号是需要在编辑模式下分别按ctrl+v 和crtl+I ,而不是不停的几个空格。

     

     

    转载于:https://www.cnblogs.com/pdjun/p/8251263.html

    展开全文
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后一行添加内容具休操作如下:复制代码代码如下:#匹配行前加...

    linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。

    一、在某行的前一行或后一行添加内容

    具休操作如下:

    复制代码

    代码如下:

    #匹配行前加

    sed -i '/toxingwang.com/iwww.toxingwang.com' the.conf.file

    #匹配行前后

    sed -i '/toxingwang.com/awww.toxingwang.com' the.conf.file

    而在书写的时候为便与区分,往往会在i和a前面加一个反加一个反斜扛 。代码就变成了:

    复制代码

    代码如下:

    sed -i '/2222222222/a\3333333333' test.txt

    sed -i '/2222222222/i\3333333333' test.txt

    这就就可以很方便的看出要在某一行前或某一行后加入什么内容 。不过经常我记不住a 、i 那个是前那个是后。我的记法是a = after ,i = in front 。这样就知道 i 是前,a 是后了。不过官方的man文件里不是这样解释的,man文件里是这样解释的:

    复制代码

    代码如下:

    a \

    text Append text, which has each embedded newline preceded by a backslash.

    i \

    text Insert text, which has each embedded newline preceded by a backslash.

    而且其可以配合find查找的内容处理,如下:

    复制代码

    代码如下:

    find . -name server.xml|xargs sed -i '/directory/i '

    二、在某行(指具体行号)前或后加一行内容

    复制代码

    代码如下:

    sed -i 'N;4a\ddpdf' a.txt

    sed -i 'N;4i\eepdf' a.txt

    这里指定的行号是第四行 。

    三、删除指定行的上一行或下一行

    #删除指定文件的上一行

    复制代码

    代码如下:

    sed -i -e :a -e '$!N;s/.*n(.*directory)/1/;ta' -e 'P;D' server.xml

    #删除指定文件的下一行

    sed -i '/pattern="%/{n;d}' server.xml

    这个写起来有点长,一般如果不是shell里的需要,我更喜欢用vim去处理。另外需要注意的是,在vim里如果替换的内容里tab这样的符号是需要在编辑模式下分别按ctrl+v 和crtl+I ,而不是不停的几个空格。

    展开全文
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: #匹配行前加 sed -i '/...

    Linux sed在某行前一行和后一行添加内容

    linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。

    一、在某行的前一行或后一行添加内容

    具休操作如下:

    #匹配行前加
    sed -i '/allow 361way.com/i\allow www.361way.com' the.conf.file
    
    #匹配行前后
    sed -i '/allow 361way.com/a\allow www.361way.com' the.conf.file

    而在书写的时候为便与区分,往往会在i和a前面加一个反加一个反斜扛 。代码就变成了:

    sed -i '/2222222222/a\3333333333' test.txt

    sed -i '/2222222222/i\3333333333' test.txt

    这就就可以很方便的看出要在某一行前或某一行后加入什么内容 。不过经常我记不住a 、i 那个是前那个是后。我的记法是

    a = after ,i = in front 。这样就知道 i 是前,a 是后了。不过官方的man文件里不是这样解释的,man文件里是这样解释的:

    a

    text  Append text, which has each embedded newline preceded by a backslash.i

    text  Insert text, which has each embedded newline preceded by a backslash.

    # 而且其可以配合find查找的内容处理,如下:
    
    find . -name server.xml|xargs sed -i '/directory/i '     

    '

    二、在某行(指具体行号)前或后加一行内容

    sed -i 'N;4a\ddpdf' a.txt
    
    sed -i 'N;4i\eepdf' a.txt
    
    # 这里指定的行号是第四行 。

    三、删除指定行的上一行或下一行

    # 删除指定文件的上一行
    
    sed -i -e :a -e '$!N;s/.*n(.*directory)/1/;ta' -e 'P;D' server.xml
    
    # 删除指定文件的下一行
    
    sed -i '/pattern="%/{n;d}' server.xml

    这个写起来有点长,一般如果不是shell里的需要,我更喜欢用vim去处理。另外需要注意的是,在vim里如果替换的内容里tab这样的符号是需要在编辑模式下分别按ctrl+v 和crtl+I ,而不是不停的几个空格。

    展开全文
  • 转载:http://www.361way.com/sed-process-lines/2263.htmllinux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后...
  • 首页 > ...linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: #匹
  • sed -i 'N;4atest' test.txt #第4行行首追加一行,内容为test sed -i 'N;4itest' test.txt #匹配到test字段的行行首插入一行 find . -name test.txt|xargs sed -i '/test/i #匹配到test字段
  • #-----------在某行(指具体行号)前或后加一行内容-----------linux vi命令删除一行#第4行末尾追加一行,内容为testsed -i 'N;4atest' test.txt#第4行行首追加一行,内容为testsed -i 'N;4itest' test.txt#匹配到test...
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后一行添加内容具休操作如下:代码如下:#匹配行前加sed -i '/...
  • linux命令sed和awk sed ...sed,stream editor。...sed主要用来自动编辑一个或者多个文件...抽区域匹配正则表达式比较域增加,附加,替换 执行过程 sed一次处理一行或多行内容。处理时,把当前处理的行存储在临
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: 复制代码 代码如下: #...
  • 答案就在下一行,鼠标选中就看到...2、在每一行后增加一空行? set ‘G’ test.txt 3、在匹配regex的行之后插入一空行? sed ‘/regex/G’ text.txt 4、计算文件行数? wc -l 5、sed将文件test中第50行中的haiwao改...
  • 一、三剑客简介 grep: 文本... sed: 文本编辑工具,实现数据的替换,删除,增加,选取等(以行为单位进行处理)。 awk: 文本报告生成器,以字段为单位进行处理(把一行的数据分割,然后进行处理)。 本文只介绍a...
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后一行添加内容具休操作如下:#匹配行前加sed -i '/allow 361...
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。下文查找或替换参数中含有 ' 单引号的,可把sed的单引号改成双引号"一、在某行的前...
  • 写这个的初衷是为了完成目下我自己遇到的需求,需要把部分linux下工作的c代码迁移到windows环境下,并以dll库的形式提供。函数需要增加如下声明 __declspec(dllexport) void func( void * arg) /* __declspec(dll...
  • sed -i 'N;4atest' test.txt #第4行行首追加一行,内容为test sed -i 'N;4itest' test.txt #匹配到test字段的行行首插入一行 find . -name test.txt|xargs sed -i '/test/i <!--' #匹配到...
  • sed的精华贴

    千次阅读 2004-09-30 22:57:00
    目录: ★ 命令行参数简介 ★ 首先假设我们有这样一个文本文件 sedtest.txt ★ 输出指定范围的行 p ★ 在每一行前面增加一个制表符(^I) ★ 在每一行后面增加--end ★ 显示指定模式匹配行的行号 [/pat
  • Linux系统中sed命令在文件某行前后添加内容的用法linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后一行添加...
  • Linux 使用笔记

    2018-01-16 09:55:00
    记录一些日常使用到的命令,以备自己查阅 —————————————————分割线——————————————— 一、 正则表达式匹配 ...sed -i '2c abc' file.name 在file.name文件的第二行位置增加
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一行或后一行添加内容具休操作如下:#匹配行前加sed -i '/allow 361...
  • 之查找过滤文件内容sed 之模糊匹配sed  之增加内容sed 之替换内容sed    之删除sed  后向引用老大 awkawk取行     NR   行号awk取列同时取行和列判断三剑客的过滤功能...
  • linux shell 脚本攻略 下

    2013-06-15 23:52:00
    sed 入门 sed可以替换给定文本中的字符串,当然也可以用正则表试试匹配 sed 's/pattern/replace_string/' file 或者 cat file | sed 's/pattern/replace_string' 使用-i选项,可以讲替换结果应用于原文件 sed -i 's/...
  • Linux shell编程指南

    2015-05-29 22:40:12
    18.3.20 增加和检测整数值 171 18.3.21 简单的安全登录脚本 172 18.3.22 elif用法 173 18.3.23 使用elif进行多条件检测 173 18.3.24 多文件位置检测 174 18.4 case语句 175 18.4.1 简单的case语句 175 18.4.2 对匹配...
  • linuxsed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: #匹配行前加 sed -i '/...
  • linux shell 编程教程

    2009-07-28 15:27:57
    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...
  • 最近因为突然用到需匹配更换文件名,发现rename命令真是 简单好用,和sed语法及vim 替换很相似. 1. 更改文件名后缀 rename 's/\.txt/\.html/' *   2.增加文件名后缀 rename 's/$/\.txt/' *   3.删除...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

linuxsed匹配增加

linux 订阅