Попробуйте это:
sed -n '/.*java:LOG:/p' inpufile > outputfile
Команда sed -n '/pattern/p'
печатать только те строки, которые соответствуют шаблону внутри //
Ваша команда-sed 's/^.*java:LOG:=//'
-использует замещающую конструкциюs/pattern/replace_string/
(в поисках pattern
и заменяет ее наreplace_string
)
Из вашего примера команды sed
я предполагаю, что вам нужны только строки, содержащие java:LOG:
. Это правда?
Обратите внимание на ваше имя файла-вы пропустили букву 't'-inpufile , но не inpu t файл
Если вам нужно точное совпадение с этой строкой:
2017-09-08 08:50:04.896 INFO 16323 --- [nio-8080-exec-8] c.c.c loginCOntroller.java:LOG:
.. шаблон будет слишком длинным
Серия команд, которые вы упоминаете в вопросе, не добавляет каретку -возвращает (^M
вещи )в ваш текстовый файл.
Однако, если в файле уже есть символы каретки -в конце каждой строки, которые есть во всех текстовых файлах DOS, тогда в файл будут добавлены не -строки DOS, что означает, что текстовый файл, после редактирования некоторые строки являются текстовыми строками Unix, а некоторые строки являются текстовыми строками DOS. В каком бы редакторе вы ни просматривали файл, он должен попытаться выяснить, что с этим делать, и решить отобразить его как текстовый файл Unix с отображением возврата каретки -, поскольку^M
(vim
сделал бы это, например ).
Решение состоит в том, чтобы запустить dos2unix
для вашего файла wp-config.php
. Он мог бы обрабатывать смешанные типы строк и преобразовывал бы весь файл в текстовый файл Unix.
Также обратите внимание, что ed
сценарий редактирования не будет чисто заменять строку put your unique phrase here
в документе. Учитывая документ
000
AAA
put your unique phrase here
BBB
XXX
... последовательность команд будет генерировать
000
AAA
BBB
define('AUTH_KEY',...
...
XXX
(обратите внимание на расположение строки BBB
до и после ). Чтобы исправить это, чтобы строки define
добавлялись перед BBB
в тексте выше, измените команду a
на команду i
, т.е. вставьте перед текущей строкой , а не добавляйте после нее. ("текущая строка" будет строкой BBB
, так как эта строка находится сразу после строки, измененной командой g//d
).