精华内容
下载资源
问答
  • 最近在学习Oracle11g...可是MySQL脚本太大,普通文本编辑器无法处理,于是用Linux下的sed老牌流编辑器来做。其中,有一段SQL脚本内容如下,INSERT INTO bonusreturnorder VALUES ('47', '224', '1300573', '2', '1

    最近在学习Oracle11g数据库时,需要将MySQL数据插入脚本转换成Oracle脚本,以在Oracle数据库中新建表和插入数据,方便练习。可是MySQL脚本太大,普通文本编辑器无法处理(7个G),于是用Linux下的sed老牌流编辑器来做。

    其中,有一段SQL脚本内容如下,

    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)/ 就是去掉“,”号

    展开全文
  • Linux中Sed命令删除字符串中的部分字符Sed命令可以把一个字符串中的一些字符删除,比如删除日期字符串中的各个连接符,空格,冒号等,执行下面的命令 #Echo “2014-08-...
     
    


    #Echo “2014-08-22 01:55:11” | sed ‘s/-//g’ | sed ‘s/ //g’ | sed ‘s/://g’

    结果为:20140822015511

    展开全文
  • #删除a.txt中含有“aaa”的行 sed -i “/aaa/d” a.txt 转载于:https://www.cnblogs.com/ivyharding/p/11265259.html
    #删除a.txt中含有“aaa”的行
    
    sed -i “/aaa/d” a.txt

     

    转载于:https://www.cnblogs.com/ivyharding/p/11265259.html

    展开全文
  • Sed 删除包含某些字符串的行

    千次阅读 2018-02-09 16:37:00
    sed -i '/关键字符/d' 文件名

    sed -i '/关键字符/d' 文件名

    展开全文
  • sed删除前N个字符

    万次阅读 2011-03-15 00:28:00
    vim sed删除前N个字符 删除空行等 [转]2009-12-04 13:11 blog.chinaunix.net/u2/76292/showart_1210882.html<br />blog.chinaunix.net/u1/46039/showart_373817.html<br /><br /><br />>>>>sed<br />删除前N个...
  • 1、将当前目录下包含hello串的文件中,hello字符串替换...2、将某个文件中的hello字符串替换为hi sed -i "s/hello/hi/g" test.txt 3、删除行首空格 sed -i 's/^ //g' test 4、删除行尾空格 sed -i 's/ $/...
  • ]删除文件中含特定字符串的行[bash]: sed -e '/abc/d'a.txt// 删除a.txt中含"abc"的行,但不改变a.txt文件本身,操作之后的结果在终端显示 sed -e '/abc/d'a.txt> a.log// 删除a.txt中含"abc"的行,将操作...
  • 1、将当前目录下包含hello串的文件中,hello字符串替换...2、将某个文件中的hello字符串替换为hi sed -i "s/hello/hi/g" test.txt 3、删除行首空格 sed -i 's/^ //g' test 4、删除行尾空格 sed -i 's/ $/...
  • 删除、替换、增加字符删除 # Delete text between patterns, excluding the lines containing these patterns(不删除所在行): sed -i '/PATTERN-1/,/PATTERN-2/{//!d}' input.txt # Delete text between ...
  • sed 删除匹配行的指定字符

    千次阅读 2019-05-17 16:36:58
    这行,删除 [$time_local] 字符串,其余做替换即可。 第一步: # sed "s/\$remote_addr/[\$time_iso8601]/" 1.txt log_format main '[ $time_iso8601 ] - $remote_user [ $time_local ] " $request " ...
  • 1、将当前目录下包含hello串的文件中,hello字符串替换为hi sed -i "s/hello/hi/g" `grep "hello" -rl ./` 2、将某个文件中的hello字符串替换为hi sed -i "s/hello/hi/g" test.txt
  • 三剑客之sed命令替换字符

    千次阅读 2019-04-28 15:58:43
    sed 's#原字符串#新字符串#g' file s 单独使用→将每一行中第一处匹配的字符串进行替换 g 每一行进行全部替换→sed指令s的替换标志之一(全局替换) sed -i 's/原字符串/替换字符串/g' filename ####替换文件...
  • sed 's/被替换的字符//g' 删除-,空格,: ~ # echo "2006-11-21 22:16:30" | sed 's/-//g' 20061121 22:16:30 ~ # echo "2006-11-21 22:16:30" | sed 's/ //g' 2006-11-2122:16:30 ~ # echo "2006-11-21 22:16...
  • sed在指定行上删除和添加字符

    万次阅读 2015-03-03 09:36:52
    使用sed完成在指定行上删除和添加字符
  • 看着很简单,其实掌握就大大有作用 删除包含特定字符的行 sed -e '/abc/d' tt.txt// 删除tt.txt中含"abc"的行,但不改tt.txt文件本身,...使用sed命令删除以a字符开头的所有行 # sed -i ‘/^a/d’ abc.txt ...
  • linux中sed在指定字符前后添加内容

    千次阅读 2018-12-18 14:46:09
    假设文档内容如下: 1 2 3 4 5 [root@localhost ~]# cat /tmp/input.txt null 000011112222 ...sed -i 's/指定的字符/要插入的字符&amp;/' 文件 ...
  • sed主要用来处理文本内容的修改,文本的提取分割可以使用awk和cut命令,参考本人文章linux常用文本字符分割分析awk和cut命令 sed命令格式: sed [选项] '.../.../...'[输入文件]... '参数1/.../参数2' 这个和vi里...
  • sed -i 's/^[^#].*swap*/#&...sed -i '/^#.*swap/s/^#//g' fstab:取消含有字符串swap的行最前面的注释符号#,//两杠表示空格,以空格替换#,等价取消#。 sed -i '/^#/d' file1 :删除注释行。 sed -i ...
  • [oracle@wlkdb2 ~]$ ansible db -m shell -a 'sed -i "/pam_wheel.so\suse_uid/ s/#auth/auth/" /etc/pam.d/su' -b --become-method su --become-user root --ask-become-pass
  • sed '/^\s*$/d' storage.txt 有时候生成的数据文件中有空行,或者在空行中还有空格、tab、特殊字符(如:^M)等,而且文件又特别大,那怎么处理呢?可以通过Linux命令sed实现去除这些空行。 如果都是空行,而空行中...
  • sed找到关键字所在行并将其前面的第一个字符删除: 代码如下:sed -i ‘/httpd-vhosts/s/^#//’ httpd.conf#Include conf/extra/httpd-vhosts.conf  说明:以 httpd-vhosts 为关键字找到这行,并将前面的第一个...
  • sed不能删除特定行字符开头的行

    千次阅读 2013-04-02 09:27:25
    问题如题,今天处理以文本文件时想删除以“T\t”开头的行,于是使用如下命令: $sed '/^T\t/d' file > file.output 结果如下: 发现第一行虽以T\t开头,却没有被删掉,自己估计是第一行存在隐藏字符,遂用vi...
  • $ sed '/test/,/check/s/$/sed test/' example-----对于模板test和west之间的行,每行的末尾用字符sed test替换。 多点编辑:e命令 $ sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多...
  • 大侠: 请教一下 如何使用grep及sed命令 搜索目录下的所有文件中的某个字符串,并且将该字符串所在行进行删除或者替换
  • ——编程三分钟”概述sed命令是用来批量修改文本内容的,比如批量替换配置中的某个ip。sed命令在处理时,会先读取一行,把当前处理的行存储在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。然后再读入下一行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,216
精华内容 8,486
关键字:

sed删除某个字符