У меня есть тысячи текстовых файлов, преобразованных из электронных писем, содержащих форму «Свяжитесь с нами». Мне нужно найти/выбрать строки во втором «столбце», но количество строк для начала каждого электронного письма является переменным. Кажется, что столбцы разделены табуляцией. Для начала, последнее поле контактной формы занимает несколько строк, а некоторые электронные письма содержат символы вертикальной черты "|" похоже, они были созданы с тех пор, как я использовал html2text для преобразования их в текстовые файлы. Как извлечь значения полей «Имя», «Фамилия» и «Длинный текст»? В конечном итоге они будут добавлены в виде новой строки в CSV-файле.
Код: Выделить всё
variable number of lines at start of email
...
..
|First Name [tab] Bob |
|Last Name [tab] Jones |
(more lines like above)
|Long Text [tab] laksjdflkjasl|
fasgafg asdfj |
gsfg asdgfa|
gsg ergsdfgre |
Использование awk ниже не очень эффективно, вероятно, из-за пробела в имени и фамилии, но заключение этого в кавычки не помогло
Код: Выделить всё
awk -F'First Name|Last Name' '{print $2}' 1.txt
И я действительно не уверен, как подойти к полю длинного текста, поскольку ниже печатается только одна строка, а не весь текст, который мне нужен.
Кажется, что использование awk с разделителем полей табуляции возможно, но я не продвинулся очень далеко, пытаясь это сделать.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... w-csv-line