代码之家  ›  专栏  ›  技术社区  ›  kander

替换为SED,尝试附加内容不起作用

  •  0
  • kander  · 技术社区  · 15 年前

    我正在尝试使用sed来修复一个文件,但是我很难找出我做错了什么。任何关于sed为什么没有像我期望的那样表现的建议都会得到赞赏。

    我的文件由一堆行组成,每行包含一个值。值的内容与替换无关,只是它们总是字母数字的,并且遵循一种模式。我想在这些值之前加上其他数据,以便创建一个CSV文件。

    在做准备时,sed的工作非常出色:

    预支(工程)

    sed 's/\(.*\)/NULL;0;400;6;2010-07-27;\1/' selection.csv

    导致:

    NULL;0;400;6;2010-07-27;1326GP11SCH
    NULL;0;400;6;2010-07-27;2312BB30DUM
    

    追加(失败)

    然而,当附加时,事情变得丑陋:

    sed 's/\(.*\)/\1 ;NULL;NULL;1/' selection.csv

     ;NULL;NULL;1
    2312BB30DUM ;NULL;NULL;1
    

    除了最后一行,待替换的值消失了,这非常令人沮丧。

    很明显我做错了什么,但我想不通。

    1 回复  |  直到 15 年前
        1
  •  2
  •   ghostdog74    15 年前

    先对文件执行dos2unix,然后使用sed

    $ dos2unix file
    $ sed 's/$/;NULL;NULL;1/' file
    
    推荐文章