У меня есть большой файл (100M строк) в следующем формате:Заменить Пробела с СЕПГОМ
Week |ID |Product |Count |Price
---------- ------------- -------- ---------- -----
2016-01-01|00056001 |172 |23 |3.50
2016-01-01|1 |125 |15 |2.75
Я пытаюсь использовать СЕПГ добавить Xs к пропущенным цифрам на втором идентификаторе клиента, но сохранить количество пробелов после полного ID. Таким образом, таблица будет выглядеть следующим образом:
Week |ID |Product |Count |Price
---------- ------------- -------- ---------- -----
2016-01-01|00056001 |172 |23 |3.50
2016-01-01|1XXXXXXX |125 |15 |2.75
Я попытался
sed -i "s/\s\{29,\}/XXXXXXX /g" *.csv
и
sed -i -- "s/1 /1XXXXXXX /g" *.csv
Ни с каких-либо изменений в файл. Что мне не хватает?
Спасибо.
EDIT для разъяснения: Есть 29 пробелов после 1 в фактических данных. Я использовал меньше в таблице примеров для удобства чтения. Я предполагаю, что любое решение будет применяться независимо от количества пробелов.
Вы уверены, что опция «-i» sed означает «на месте»? На некоторых системах это означает что-то еще, что путает. –
Это означает на месте, когда я использую его для своих типичных процедур замены (я должен запускать определенную командную строку один раз в месяц по некоторым данным, которые мы получаем) ... -i всегда заменяет inline для меня – datahappy
Кроме того, я попробовал -e просто потому, что я видел это для такого типа вещей. Я закончил с линиями 100M, прокручивающимися по моему командному окну :) – datahappy