Я смог понять из GNU page of GAWK, что он может обрабатывать разделители данных с использованием переменной FPAT
, но я не могу это сделать. Для файла CSV значение FPAT является:awk Переменная FPAT: Работа
FPAT = "([^,]+)|(\"[^\"]+\")"
Используя данные:
abc,"pqr,mno"
Первое сгруппированных выражение всему т.е. не запятая, это следует принимать "abc"
как данные, затем не для первого появление запятой. Теперь мой вопрос - что будет дальше? Поскольку первое сгруппированное выражение не сработало, будет ли регулярное выражение продолжаться от символа после запятой, используя условие или? но первое сгруппированное выражение остается действительным для всех данных после запятой, поэтому в качестве следующих данных может потребоваться "pqr
?
Мой вопрос в том, почему регулярное выражение начиналось со второго паттерна в ", оно всегда может идти за [^,], потому что данные не являются запятыми. Поскольку regexp жадный, он просто ищет первое совпадение, правильно? – ghub24
Спасибо sudo_O, высоко оцененный. – ghub24
@ user1844303 он будет работать дольше всех. Легким испытанием является переключение порядка двух регулярных выражений. –