Ситуация
У меня большой файл, и мне нужно вырезать часть строки (последние три значения) из определенных номеров строк. Я должен вставить фрагмент строки разреза в конце другой строки в другом файле. Строки в больших файлах выглядят примерно так:
33 X2_C(4) 0.2454 1.1280 0.0073 1.4926102 15.5148009 0.0724955
34 X2_C(5) 0.2487 1.2156 -0.0585 1.5876791 16.7196951 -0.5831547
35 X2_C(6) 0.2529 1.2191 -0.1998 1.7741292 16.7675608 -1.9922789
А пока я понял, что для получения трех последних чисел регулярное выражение должно выглядеть так:
\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}\s+\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}\s+\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}
Файл визменить выглядит так:
C(Fragment=1)
C(Fragment=2)
C(Fragment=2)
Ожидаемый результат
C(Fragment=1) 1.4926102 15.5148009 0.0724955
C(Fragment=2) 1.5876791 16.7196951 -0.5831547
C(Fragment=2) 1.7741292 16.7675608 -1.9922789
Задача
- Я не знаю, как сказать grep, чтобы получить соответствующий шаблон изтолько одна конкретная строка.
- Я не знаю, как добавить то, что было найдено в конец определенной строки в другом файле, не удаляя то, что было в строке.