У меня есть много данных, которые я пытаюсь разбить в CSV. Мои исходные данные имеют следующий формат:Сплит данных с помощью sed или awk
* USER 'field1' '[email protected]' 'field3'
* USER 'field1' '[email protected]' 'field3'
* USER 'field1' '[email protected]' 'field3'
И вот что я пытаюсь получить в качестве вывода:
field1;[email protected];field3
field1;[email protected];field3
field1;[email protected];field3
Правила:
* USER
в начало строки должен быть явно лишен;field1
иfield3
может быть адресом электронной почты или может содержать'
;field1
может быть пустым''
- второе поле всегда является адресом электронной почты;
- каждое поле имеет
'
в начале и конце самого поля.
Моя идея состояла в том, чтобы лишить * USER
(sed -e 's/^* USER //'
может стать отправной точкой), то «найти» почту в «центре» поле, а затем поймать левую сторону и правую сторону на Варс. Последняя вещь должна состоять в том, чтобы разбить начало и конец '
на vars. К сожалению, у меня нет знаний sed или awk на этом уровне. Любые идеи о том, как достичь этого?
Вот пример
* USER '' '[email protected]' 'CORDINI ALBERTO'
* USER 'moglie delmonte daniele' '[email protected]' 'Anna Borghi'
* USER '' '[email protected]' 'CRAVERO ANNA MARIA'
* USER '' '[email protected]' 'D'AGOSTINO PATRIZIA'
* USER '' '[email protected]' 'DE PRA' PIERO'
* USER '' '[email protected]' 'D'INGEO VIVIANA'
Если вы можете добавить небольшой образец, содержащие случаи/правила, которые вы добавили в свой пост, это, безусловно, будет легче помочь. – Rubens
Я разместил пример ниже –
, почему использовать '' 'а не' '' для того, чтобы окружать имена, которые могут содержать '' '? ... он задает проблемы. –