Текстовая фильтрация с использованием SED или AWK

расширение параметров действительно сделало трюк.

echo ${1%.S??E*}|sed 's/\./ /'

повторяет имя серии и меняет потенциальные точки на пробелы. Это не работает для всех серий (например, для Mr. Robot нужна точка), но это уже достаточно близко.

0
14.11.2018, 19:08
2 ответа

Публикация желаемого вывода без указания правил/логики, которые необходимо применить для его получения, на самом деле не поможет решить вашу проблему. Кто-то может просто повторить/распечатать вывод без привязки к вводу.Предполагая, что вы хотите, чтобы строки между \begin{code}и \end{code}исключались, попробуйте

sed -n '/\\begin/,/\\end/ {/{code}/!p}' file
code1
  -- comment1
  code1A
  -- comment2
  code1B
codeB

Если вам нужны пустые строки, добавьте /^ *$/pк скрипту sed.

РЕДАКТИРОВАТЬ:Вот так:

$ sed -n '/\\begin/,/\\end/ {/{code}/!p}; /^ *$/p' file
code1
  -- comment1
  code1A

  -- comment2
  code1B

codeB
1
28.01.2020, 02:31

Примечание:Редактирование вопроса с тех пор сделало это решение устаревшим.


Поскольку вы просто хотите отфильтровать определенные строки для вывода, grepможет выполнить эту работу.

$ grep -v -e "T[0-9]" -e '^\\begin{code}$' -e '^\\end{code}$' file.txt
code1
  -- comment1
  code1A
  -- comment2
  code1B
codeB
1
28.01.2020, 02:31

Теги

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