Вопрос Исправить текстовый файл из двойного пространства, разделенного на вкладку


Я пытаюсь отфильтровать текстовый файл, но не смог этого сделать. Я только что понял, почему я не могу отфильтровать его, потому что то, что я думал, было указано как

Word '\t' phoneme
Word '\t' phoneme
Word '\t' phoneme
Word '\t' phoneme

не всегда разделяется на вкладку. Некоторые из записей разделены двумя пробелами, а другие разделены вкладкой.

Можно ли изменить все пробелы между словом и фонемами на вкладку?

<oov> <oov>
A  AH0
A  EY1
A''S    EY1 Z
A'BODY  EY1 B AA2 D IY0
A'COURT EY1 K AO2 R T
A'D EY1 D
A'GHA   EY1 G AH0
A'GOIN  EY1 G OY1 N
A'LL    EY1 L
A'M EY1 M
A'MIGHTY    EY1 M AY1 T IY0
A'MIGHTY'S  EY1 M AY1 T IY0 Z
A'MOST  EY1 M OW2 S T
A'N'T   EY1 AH0 N T
A'PENNY EY1 P EH2 N IY0
A'READY EY1 R IY1 D IY0
A'RIGHT EY1 R AY2 T
A'RONY  EY1 R OW1 N IY0
A'S  EY1 Z
A'TER   EY1 T ER0
A'TERNOON   EY1 T ER0 N UW1 N

1
2018-04-19 13:08


происхождения


Вы хотите заменить все непрерывные последовательности пробелов с помощью отдельных вкладок - или только первая такая последовательность на каждой строке? - steeldriver
Я просто хочу заменить все пробелы между словом и множеством фонем. - Bob Burt
И какие из них? Первое место на каждой линии? - terdon♦
да .. это было бы так. Но это два пробела. - Bob Burt


ответы:


Предполагая, что вы хотите заменить первую строку пробела на строке одной вкладкой, это будет работать с GNU sed:

$ sed -Ee 's/[ \t]+/\t/' lexicon
<oov>   <oov>
A       AH0
A       EY1
A''S    EY1 Z
A'BODY  EY1 B AA2 D IY0
...

Добавить g после последней косой черты, чтобы изменить все пробелы на отдельные вкладки.


3
2018-04-19 13:22