Замена на SED, попытка добавить контент не работает - PullRequest
0 голосов
/ 27 июля 2010

Я пытаюсь использовать sed для исправления файла, и мне трудно понять, что я делаю неправильно. Любые указания на то, почему sed не ведет себя так, как я ожидаю, будут оценены.

Мой файл состоит из набора строк, каждая из которых содержит одно значение. Содержимое значений не имеет значения для замены, за исключением того, что они всегда буквенно-цифровые и следуют шаблону. Я хочу добавить и добавить эти значения к другим данным, чтобы создать файл CSV.

При добавлении sed работает превосходно:

Prepend (работает)

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 ... не стесняйтесь перенести его в SuperUser, если вы можете и считаете, что он должен быть там)

1 Ответ

2 голосов
/ 27 июля 2010

сначала создайте dos2unix для файла, затем используйте sed

$ dos2unix file
$ sed 's/$/;NULL;NULL;1/' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...