Sed -e и awk для обработки текстового файла - PullRequest
1 голос
/ 25 февраля 2020

Этот код берет весь файл .stm из каталога и после выполнения сохранения этого кода в файле.

cat db/some_path/stm/*.stm | sort -k1,1 -k2,2 -k4,4n | \
      sed -e 's:<F0_M>:<o,f0,male>:' \
          -e 's:<F0_F>:<o,f0,female>:' \
          -e 's:([0-9])::g' \
          -e 's:<sil>::g' \
          -e 's:([^ ]*)$::' | \
      awk '{ $2 = "A"; print $0; }'
  } | local/join_suffix.py > data/dev.orig/stm

Пример вывода

AimeeMullins_2009P A inter_segment_gap 0 17.82 <o,,unknown> ignore_time_segment_in_scoring
AimeeMullins_2009P A AimeeMullins 17.82 28.81 <o,f0,female> i'd like to share with you a discovery that i made a few months ago while writing an article for italian wired i always keep my thesaurus handy whenever i'm writing anything but
AimeeMullins_2009P A AimeeMullins 28.81 40.266 <o,f0,female> i'd already finished editing the piece and i realized that i had never once in my life looked up the word disabled to see what i'd find let me read you the entry
AimeeMullins_2009P A inter_segment_gap 40.266 41.418 <o,,unknown> ignore_time_segment_in_scoring

Я не понимаю используя sed -e как его отформатировать.

что я понимаю awk '{ $2 = "A"; print $0; }' значение этой строки для каждой строки, возьмите 2-е слово и проверьте, равно ли оно A, затем выведите 1-е слово, но что это за значение -e 's:<sil>::g'?

...