我正在尝试使用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
除了最后一行,待替换的值消失了,这非常令人沮丧。
很明显我做错了什么,但我想不通。