精华内容
下载资源
问答
  • sed删除指定行

    千次阅读 2019-03-07 16:57:00
    待处理文本如1-8行文本 $cat a 1 2 ...sed删除连续指定行:如1-4行 ...sed删除不连续指定行:如第一行和第三行 $sed -e '1d' -e '3d' a 2 4 5 6 7 8 一个例子: 我有一个list文件如下: $cat li...

    待处理文本如1-8行文本

    $cat a 
    1
    2
    3
    4
    5
    6
    7
    8

    sed删除连续指定行:如1-4行

    $sed '1,4d' a
    5
    6
    7
    8

    sed删除不连续指定行:如第一行和第三行

    $sed -e '1d' -e '3d' a
    2
    4
    5
    6
    7
    8

     一个例子:

    我有一个list文件如下:

    $cat list 
    unknown_other_2     #文件名,我要从文件里抓取一些信息,下同,发现下图里没有有些没有我想要的信息,test后面的数字代表这个list文件的行号
    unknown_other_5   #我要删除大小为0的行
    unknown_other_1      
    F002_other_1
    unknown_other_14
    t_unknown_other_4
    t_unknown_other_6
    t_unknown_other_4
    t_unknown_other_1
    t_unknown_other_4
    t_unknown_other_12
    t_unknown_other_4
    t_unknown_other_13
    t_unknown_other_10
    t_unknown_other_12
    t_unknown_other_4
    t_unknown_other_42
    t_unknown_other_16
    t_unknown_other_27
    t_unknown_other_14
    t_unknown_other_31
    t_unknown_other_12
    t_unknown_other_10
    t_unknown_other_13
    t_unknown_other_11
    t_unknown_other_22
    t_unknown_other_21
    t_unknown_other_45
    t_unknown_other_42
    t_unknown_other_4
    t_unknown_other_33
    t_unknown_other_1
    t_unknown_other_12
    t_unknown_other_14
    t_unknown_other_1
    t_unknown_other_31
    t_unknown_other_4
    t_unknown_other_11
    t_unknown_other_11
    t_unknown_other_3

    test文件,test后面的数字对应上面list行号:

    代码如下:

    ls -l |awk '{if ($5==0){print $9}}'|cut -d "t" -f3|xargs   -I {} echo -e "-e {}d"|xargs|xargs -I {} echo sed -i -e {} list|sh
    
    #执行结果
    #sed -i -e test10d -e test12d -e test14d -e test16d -e test2d -e test27d -e test3d -e test31d -e test32d -e test33d -e test35d -e test38d -e test39d -e test4d -e test40d -e test5d -e test9d list
    
    #分解说明
    #ls -l |awk '{if ($5==0){print $9}}'  列出大小为0的test文件
    #cut -d "t" -f3  抓取后面的数字    用字符"t" 分割test文件,取第三列数字部分
    #xargs -I {} echo -e "-e {}d"|xargs|xargs -I {} echo sed -i -e {} list  打印执行语句
    #sh  执行

     

    转载于:https://www.cnblogs.com/xlij1205/p/10490751.html

    展开全文
  • sed删除指定行的上一行

    千次阅读 2012-01-18 12:21:44
    有这么个需求,需要从若干个apache虚机配置文件中删除一段内容,类似下面这种 [code="java"] ServerName abc.com DocumentRoot /home/apache/abc CustomLog logs/abc.com-access_log combined ...
    有这么一个需求,需要从若干个apache虚机配置文件中删除一段内容,类似下面这种
    

    <VirtualHost *>
    ServerName abc.com
    DocumentRoot /home/apache/abc
    CustomLog logs/abc.com-access_log combined
    </VirtualHost>


    思路:以ServerName为中心,删除上面的一行,再删除从ServerName到</VirtualHost>之间的内容即可。

    脚本如下:

    #! /bin/sh
    # by logo32.iteye.com
    # delete domain from *.conf

    Dir="/usr/local/apache2/conf"
    cd $Dir
    ls *.conf | while read file
    do
    con=`grep 'ServerName abc.com' $file | wc -l`
    if [ $con -gt 0 ];then
    echo "delete domain in this file : $Dir/$file"
    sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' $file
    sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file
    else
    echo "======== no change for file : "$file
    fi
    done


    其中最重要的两条语句
    1、删除指定行的上一行
    sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' $file
    2、删除指定字符串之间的内容
    sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file
    展开全文
  • Linux环境下sed删除指定行和下面几行

    千次阅读 2019-04-04 09:48:01
    命令:sed -i '/AISchang/,+9d' aischang.zone 会删除文件 aischang.zone 中包含AISchang的这一行以及下面9行的数据

    命令:sed -i '/AISchang/,+9d'   aischang.zone 

    会删除文件 aischang.zone 中包含AISchang的这一行以及下面9行的数据

    展开全文
  • sed删除匹配行的上一行下一行

    千次阅读 2020-04-26 15:45:19
    1.删除匹配行的上一行下一行: ...2.sed中使用变量,删除匹配行的上一行下一行: AA=string #变量指定匹配字符串 sed -i -e '/'"$AA"'$/{n;d}' -e '$!N;/\n.*'"$AA"'$/!P;D' file 例子: ...

    1.删除匹配行的上一行和下一行:

    sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' file
    2.sed中使用变量,删除匹配行的上一行和下一行:

    AA=string     #变量指定匹配字符串
    sed -i -e '/'"$AA"'$/{n;d}' -e '$!N;/\n.*'"$AA"'$/!P;D' file
     

     

    例子:

    INSERT INTO bonusreturnorder VALUES ('47', '224', '1300573', '2', '1', 'WX20160203083601539373', 'HBTK20160204020000110119', '2016-02-04 02:00:01', '2016-02-04 02:00:00', '1200.00', '超时未领完');
    INSERT INTO bonusreturnorder VALUES ('50', '254', '697', '2', '1', 'WX20160203085132174280', 'HBTK20160204020001045349', '2016-02-04 02:00:02', '2016-02-04 02:00:01', '600.00', '超时未领完');
    --
      BONUSID number(11) ,
      DELETEFLAG number(2) ,
      TYPE number(2) ,
    ); 
    
    
    CREATE TABLE bonususer (
    --
      SENDUSERID number(11) ,
      SENDUSERNAME varchar2(32) ,
      BONUSTICKETNO varchar2(32) ,
    ); 
    
    INSERT INTO bonususer VALUES ('332', '155', '100.00', '85705', '3', '2016-02-03 07:12:27', '2016-02-03 07:13:11', null, '1', '1322', null, 'HB201602030712277209291');
    INSERT INTO bonususer VALUES ('335', '155', '100.00', '1322', '3', '2016-02-03 07:12:27', '2016-02-03 07:12:38', null, '1', '1322', null, 'HB201602030712277209292');
    --
      receiveUserId number(11) NOT NULL,
      deleteFlag number(1) NOT NULL ,
      createTime date ,
    ); 
    
    INSERT INTO rb_bonustouser VALUES ('97154', '8515718', '239473', '1', '2017-01-11 19:28:16');
    INSERT INTO rb_bonustouser VALUES ('97156', '8515718', '11326', '1', '2017-01-11 19:28:16');
    

    要求:

    使用sed删除以)开头的行的上一行末尾的逗号

    苦恼了我两个晚上也没搞定,期间也参考了网上一些大神的博客和GNU官网sed命令的详解。最终选择在CSDN上发帖求助文本处理大神,迎刃而解。在此感谢大牛 “代码誉写工”。

    [pc@S5 ~]$ sed '/,\s*$/{:loop; N; /,\(\s*\|\n\))/! bloop; s/,\s*[\n]\?\s*)/\n)/}' file
    20000110119', '2016-02-04 02:00:01', '2016-02-04 02:00:00', '1200.00', '超时未领完');
    INSERT INTO bonusreturnorder VALUES ('50', '254', '697', '2', '1', 'WX20160203085132174280', 'HBTK20160204020001045349', '2016-02-04 02:00:02', '2016-02-04 02:00:01', '600.00', '超时未领完');
    --
      BONUSID number(11) ,
      DELETEFLAG number(2) ,
      TYPE number(2) 
    ); 
    
    
    CREATE TABLE bonususer (
    --
      SENDUSERID number(11) ,
      SENDUSERNAME varchar2(32) ,
      BONUSTICKETNO varchar2(32) 
    ); 
    
    INSERT INTO bonususer VALUES ('332', '155', '100.00', '85705', '3', '2016-02-03 07:12:27', '2016-02-03 07:13:11', null, '1', '1322', null, 'HB201602030712277209291');
    INSERT INTO bonususer VALUES ('335', '155', '100.00', '1322', '3', '2016-02-03 07:12:27', '2016-02-03 07:12:38', null, '1', '1322', null, 'HB201602030712277209292');
    --
      receiveUserId number(11) NOT NULL,
      deleteFlag number(1) NOT NULL ,
      createTime date 
    ); 
    
    INSERT INTO rb_bon
    

    解释:
    \s匹配空格、制表符、换行、回车,也就是\s其实也匹配\n(多行模式的每行结尾)
    \s*就是有0到n个空格或\n
    /,/{}只要找到“,”就执行{}里的语句
    :loop就是个标识,bloop 就是跳转到:loop
    N是把下一行加入模式空间
    /.\s*)/! bloop是如果模式空间发现了“, )”(这个“,”和“)”之间也许有n多个空格和回车,但没有其它字符),就不再执行:loop,也就是不N,而是执行bloop后的语句
    s/,\s*)/\n)/ 就是去掉“,”号
     

     

     

     

     

    展开全文
  • sed删除指定行和空行

    2011-03-04 18:45:18
    删除匹配rows selected的行: [code="shell"] sed '/rows selected/d' target_filename [/code] ...删除空白行: ...删除一行: [code="shell"] sed '1d' target_filenam...
  • 业务需求,要写个脚本定期收集目录的文件 涉及到个去重的功能 cat 1.txt /date/file1/x ...如上 我想删除1.txt中 包含 /date/file/x的 ,使用上面的sed 命令都无法实现。 不知哪里不对。求指导!
  • 1.删除匹配行的上一行下一行sed -...D' file2.sed中使用变量,删除匹配行的上一行下一行:AA=string #变量指定匹配字符串 sed -i -e '/'"$AA"'$/{n;d}' -e '$!N;/\n.*'"$AA"'$/!P;D' file...
  • macOSsed 删除指定内容

    千次阅读 2018-06-25 17:31:18
    执行sed -i '' 23,44d a.txt ,删除23到44内容,注意需要添加 '' 。直接执行 sed -i 23,44d a.txt 失败。
  • 最近在学习Oracle11g...可是MySQL脚本太大,普通文本编辑器无法处理,于是用Linuxsed老牌流编辑器来做。其中,有段SQL脚本内容如下,INSERT INTO bonusreturnorder VALUES ('47', '224', '1300573', '2', '1
  • 课题一:删除匹配行的上一行下一行数据 1.删除匹配行的上一行下一行sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename 2.删除匹配到特定字符所在行的上一行 sed -i -e '$!N;/\n.*string/!P;D'...
  • linux sed命令 删除指定行

    千次阅读 2020-04-24 14:18:34
    sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the commands to be executed) ...删除第N sed -i 'Nd' filename...
  • sed 删除最后几行 和删除指定行 转载原文链接:http://blog.51cto.com/lspgyy/1305489 sed 想删除文件中的指定,是可以用行号指定也可以用RE来匹配的。 删除指定【可以指定行号删除...
  • sed指定行删除和添加字符

    万次阅读 2015-03-03 09:36:52
    使用sed完成在指定行删除和添加字符。
  • 1、删除文档的第一行 sed -i '1d' <file> 2、删除文档的最后一行 sed -i '$d' <...3、在文档指定行中增加一行 例如文档如下: echo"1"; echo"2"; echo"4"; echo"5"; 想要在echo...
  • sed 删除最后几行 和删除指定行

    千次阅读 2013-10-07 18:17:04
    sed 想删除文件中的指定,是可以用行号...删除指定【可以指定行号删除、匹配字符串来删除】[root@Jason64-17 ~]# cat -n seq.txt 1 ok i will help you 2 understand sed usage 3 how to use it 4 and ...
  • 例如删除 /etc/profile的最后一行 cat -n /etc/profile ... 101 export PATH=/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 102 export PATH=/usr/local/mysql/bin:/usr/local/sbin:...
  • sed指定行添加或删除注释

    千次阅读 2017-05-24 11:55:00
    如下文本 zimu.txt aaaaa #bbbbbb cccccc dddddd ...以下命令如果需要在文本中更改 需要加 -i 或者 -ri...的意思是匹配任意字符(就是说未知数,啥都) 这条命令是 替换以aaa开头的 用sed取消bbb前面的注释 ...
  • sed 删除匹配指定字符串

    千次阅读 2019-05-17 16:36:58
    另外,如果想在一行行尾增加字符串,通常是这样做: # sed 's/$/aaa/' file1 # ^表示行首,$表示行尾 但如果将 access_log /usr/local/nginx/logs/$SERVICE_access.log; 改成 access_log /usr/local...
  • sed删除匹配行到最后一行

    千次阅读 2016-03-01 01:02:51
    [root@dltasoam001jeguan ~]# sed -i -e '/^;/,$d' /etc/resolv.conf [root@dltasoam001jeguan ~]# cat /etc/resolv.conf nameserver 135.111.105.157 nameserver 135.111.105.156 nameserver 135.111.105.155 ...
  • sed指定行插入新

    千次阅读 2020-01-07 21:27:31
    sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the commands to be executed) ...删除第N sed -i 'Nd' filename...
  • sed命令常用到的两个选项:-i : 直接在文件上编辑 (edit files in place)-e[默认选项]:只在命令行输出,而文件不改变(add the script to the commands to...sed命令删除特定行号删除第N行sed -i 'Nd' filename删...
  • sed 删除

    2019-09-27 14:17:23
    sed 删除sed ':label;N;s/\n/:/;b label' filename sed ':label;N;s/\n/:/;t label' filename 上面的两条命令可以实现将文件中的所有换符替换为指定的字串,如命令中的冒号。命令的解释:...
  • 使用sed命令 删除一行 sed -i '1d' filename 删除第n行 sed -i 'nd' filename 删除最后一行 sed -i '$d' filename
  • shell sed 删除文本中指定的某一行

    千次阅读 2012-04-17 19:43:43
    sed -i "5d" /var/spool/cron/root 往某一行插入 sed -i '625a\extension=php_screw.so' /etc/php.ini

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,929
精华内容 16,371
关键字:

sed删除指定行的下一行