У меня есть журнал с метками времени. Иногда в одной строке указывается несколько временных меток. Теперь я хотел бы удалить все метки времени из строки, но оставить первую.
Я могу сделать, s/pattern//2
но это только удаляет второе вхождение и sed
не позволяет что-то подобное s/pattern//2-
.
Какие-либо предложения?
Ответы:
С GNU
sed
:В
2
указывает , что второй шаблон и все остальныеg
должны удалить. Так что это будет первым.источник
Это должно сработать (замените _ чем-то другим, если это вступит в конфликт с вашими журналами):
источник
\n
.или без седо гото:
Общие решения для удаления из n-й позиции (например, 3):
источник
Небольшое изменение в ответе @ jillagre (измененное для устойчивости) может выглядеть так:
... но в некоторых случаях
sed
вам может потребоваться заменитьn
в правой части первогоs///
оператора\n
ubstitution буквальный символ смещения.источник