Я пытаюсь использовать 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, если вы можете и считаете, что он должен быть там)