contentJSON is :-
{"id":"0","name":"inc_timestamp","workspaceId":"37158928","infoJSON":"{a:{\"a\":\"bcd\",\"b\":{\"c\":\"d\"}}}","contentJSON":"{\n \"tasks\": [\n {\n \"name\": \"Input\",\n \"taskType\": \"executeCustomSQLQueryForIncrementalLoad\",\n \"id\": 10,\n \"x\": 95,\n \"y\": 44,\n \"inputConnectors\": [],\n \"outputConnectors\": [\n {\n \"nodeID\": 11,\n \"type\": \"Output\",\n \"name\": \"\"\n }\n ],\n \"argsMap\": {\n \"taskId\": 10,\n \"datasetId\": 49053696,\n \"deltaColumnName\": \"timestamp\",\n \"deltaColumnDataType\": \"timestamp\",\n \"deltaColumnValue\": \"null\",\n \"primaryKeysList\": [\n \"id\"\n ]\n },\n \"datasetId\": 49053696\n },\n {\n \"name\": \"Output\",\n \"taskType\": \"saveToES\",\n \"id\": 11,\n \"x\": 453,\n \"y\": 44,\n \"inputConnectors\": [\n {\n \"nodeID\": 10,\n \"type\": \"Input\",\n \"name\": \"\"\n }\n ],\n \"outputConnectors\": [],\n \"argsMap\": {\n \"bizvizcubeId\": 46759937,\n \"cfg\": {\n \"es.mapping.id\": \"id\"\n }\n }\n }\n ],\n \"connections\": [\n {\n \"source\": {\n \"taskId\": 10,\n \"connectorIndex\": 0\n },\n \"dest\": {\n \"taskId\": 11,\n \"connectorIndex\": 0\n }\n }\n ],\n \"isIncrementalLoadModeWorkflow\": 1\n}\n"}
Status:200
{"wokspaceResp":{"success":true,"workspaces":[],"params":"{\"id\":\"49086475\"}"}}
{"wokspaceResp":{"success":true,"workspaces":[],"params":"{\"id\":\"49086475\"}"}}
{"success":true,"workspaces":[],"params":"{\"id\":\"49086475\"}"}
{"id":"49086475"}
wfid is : 49086475
finally wfid is : 49086475
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.136s
[INFO] Finished at: Tue Oct 24 15:30:48 IST 2017
[INFO] Final Memory: 33M/392M
[INFO] ------------------------------------------------------------------------
Я потребовал к grep 49086475
который изменяется каждый раз, когда я выполняю свою программу.
Ведите меня для получения текста после finally wfid is :
.
Используйте awk:
awk '/finally wfid is :/{print $NF}'
... который печатает последнее поле строки, содержащее finally wfid is :
.
Несмотря на все хорошие решения, отправленные уже, я добавлю то, которое только использует grep
. Я часто заканчиваю тем, что делал вещи этот путь из-за моей неспособности помнить sed
и awk
команды.
grep 'finally wfid is' input_file | grep -o '[0-9]*'
первый grep будет проводить корректную строку. Второй использует -o
аргумент для взятия часть соответствия only строки, которая вот что-либо числовое.
Просто сделайте:
grep "finally wfid is" <filename> | awk '{print $5;}'
Это произведет число, которое находится в одной только той строке. Если Вы хотите целую строку, просто опускают awk
.
Использовать grep
таким образом:
grep -oP 'finally wfid is : \K.*' <filename>
Объяснение из исходного ответа:
С
grep
и-P
для того, чтобы иметьPCRE
(Интерпретируйте шаблон как Совместимое с Perl Регулярное выражение), и-o
распечатать один только подобранный шаблон.\K
уведомьте проигнорирует подобранную часть, прибывшую перед собой.
Или можно использовать sed
таким образом:
sed -n 's/finally wfid is : //p' <filename>
finally wfid is :
, но этим заменят с пустой строкой.Мне кажется, что все ответы, отправленные до сих пор, упустили суть вопроса. Или, возможно, я имею. Я понимаю вопрос означать
Я должен найти текст (восьмизначное число), которое появляется после
finally wfid is :
и затемgrep
файл для того текста.
Отправленные ответы делают первую прекрасную часть, но не заканчивают задание. По моему скромному мнению, ответ muru является лучшим; я буду основываться на этом:
grep "$(awk '/finally wfid is :/{print $NF}' contentJSON)" contentJSON
где $(command)
получает вывод от command
(в этом случае, awk
) и использование это во внешней команде (в этом случае, grep
). Я предполагаю от вопроса, что имя файла contentJSON
.