Регулярное выражение регулярное выражение для извлечения полей в двойных кавычках из строк - PullRequest
0 голосов
/ 14 июня 2019

У меня есть файл с несколькими такими строками (ниже двух строк примера):

any_string,N/A,Input,1,1,1,06/13/2019 17:14:04,1560456844,8361,Error loading row to target table [any_string]. Error message [
FnName: Execute -- [Informatica][ODBC Oracle Wire Protocol driver][Oracle]ORA-01400: cannot insert NULL into (""any_string"".""any_string"".""any_string"")],2,""12345678"";""1234"";""0"";""123456789"";""12"";""123456789123"";""3"";""12345"";""87654321"";""12345"";""any_string"";""1"";"""";""1"";"""";"""";"""",N/A,N/A,-1,-1,N/A

Мне нужен сценарий оболочки, чтобы извлечь из двух строк выше единственную следующую выдержку для записи в другой файл:

""12345678"";""1234"";""0"";""123456789"";""12"";""123456789123"";""3"";""12345"";""87654321"";""12345"";""any_string"";""1"";"""";""1"";"""";"""";""""

Буду признателен за любые подсказки регулярного выражения для выполнения этой задачи.ввод:

any_string,N/A,Input,1,1,1,06/13/2019 17:14:04,1560456844,8361,Error loading row to target table [any_string]. Error message [
FnName: Execute -- [Informatica][ODBC Oracle Wire Protocol driver][Oracle]ORA-01400: cannot insert NULL into (""any_string"".""any_string"".""any_string"")],2,""12345678"";""1234"";""0"";""123456789"";""12"";""123456789123"";""3"";""12345"";""87654321"";""12345"";""any_string"";""1"";"""";""1"";"""";"""";"""",N/A,N/A,-1,-1,N/A

ожидаемый вывод:

""12345678"";""1234"";""0"";""123456789"";""12"";""123456789123"";""3"";""12345"";""87654321"";""12345"";""any_string"";""1"";"""";""1"";"""";"""";""""

1 Ответ

2 голосов
/ 14 июня 2019
$ awk -F, '/"/{print $(NF-5)}' file
""12345678"";""1234"";""0"";""123456789"";""12"";""123456789123"";""3"";""12345"";""87654321"";""12345"";""any_string"";""1"";"""";""1"";"""";"""";""""

Если это не все, что вам нужно, отредактируйте ваш вопрос, чтобы лучше описать ваши требования и предоставить более по-настоящему репрезентативный пример ввода / вывода.

...