Найдите/Замените специальные символы в текстовом файле с помощью сценария Bash

Я ищу некоторое руководство при создании сценария для нахождения и заменения специальных символов в текстовом файле.

Я придумал эту часть псевдо кода, но восполнение пробелы немного более трудно:

  • Найдите новую строку и замену пространством.
  • Найти CP И замена новой строкой.
  • Найти Mr. Mime (с пространством) и замена Mr.Mime (без пространства)
  • Найдите вкладку и замену пространством
  • Найдите двойной интервал и замену одиночным пробелом
  • Найти % И замена ничем (иначе просто пропускают его),
  • Найдите "ATK DEF STA IV" и замена пространством

"Найдите" обозначает, "Находят Все Экземпляры".

Я изучал sed, но я, может казаться, не нахожу, как я обработал бы эти специальные символы. Любые идеи очень ценятся.

Править: Как спросили настоящим небольшой отрывок входа:

CP 1593
SSS
Sudowoodo♀
ATK     DEF     STA     IV
15  15  15  100.0%
counter
rock slide
CP 1262
SSS
Tangrowth♀4
ATK     DEF     STA     IV
15  15  15  100.0%
vine whip
grass knot
CP 1077
SSS
Mr. Mime♀
ATK     DEF     STA     IV
15  15  15  100.0%
confusion
psychic

И ожидаемый вывод:

1593 SSS Sudowoodo♀ 15 15 15 100.0 counter rock slide
1262 SSS Tangrowth♀4 15 15 15 100.0 vine whip grass knot
1077 SSS Mr.Mime♀ 15 15 15 100.0 confusion psychic
1
задан 21 February 2018 в 17:55

1 ответ

Текстовый процесс sed строго ориентирован на строки, поэтому довольно сложно заменить переводы строк на sed.
Не проверено:

cat file |
  tr '\n\t' '  ' |
  sed -e 's/ CP /\n/g' \
      -e 's/Mr[.] Mime/Mr.Mime/g' \
      -e 's/   */ /g' \
      -e 's/%//g'
5
ответ дан 3 December 2019 в 06:37

Другие вопросы по тегам:

Похожие вопросы: