Я пытаюсь отделить RECORDS файла на основе строки «//».Awk double-slash record separator
То, что я попытался это:
awk -v RS="//" '{ print "******************************************\n\n"$0 }' myFile.gb
Где «******» и т.д., это просто след, чтобы показать мне, что запись расщепляется.
Однако файл также содержит /
(сам по себе), и мой след, ******
печатается там, а это означает, что awk интерпретирует их также как мой разделитель записи.
Как я могу получить awk только для разделения записей на //
????
UPDATE: Я бегу на Unix (тот, который поставляется с OS X)
я нашел временное решение, являющееся:
sed s/"\/\/"/"*"/g | awk -v RS="*" ...
Но должно быть лучше, особенно с массивным файлы, с которыми я работаю.
попробовать 'RS = "\/\ /"' или 'RS =" [/] [ /] "'? Удачи. (Худший случай: 'RS = '[\ /] [\ /]'') – shellter
Я пробовал все это !!!! Но, похоже, навсегда запечатлелось рекорд. Разве это не означает, что он не находит шаблон? – libby
Это зависит от вашей реализации awk. В некоторых RS может быть только одним символом, и когда вы назначаете многосимвольную строку, он просто использует первый. –