2010-07-27 57 views
0

我试图用sed修复一个文件,并且我在修理我做错的时候遇到了问题。关于为什么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 

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

这一定很明显,我在这里做错了,但无法弄清楚。

(注:不知道这是否是SO或SU材料......随意将其移动到超级用户,如果可以的话,相信它应该是那边)

回答

2

做DOS2UNIX的上档第一,然后用sed

$ dos2unix file 
$ sed 's/$/;NULL;NULL;1/' file 
+0

你先生,太棒了。非常感谢!答案已被接受并被提升。 – kander 2010-07-27 15:28:40