Используя sed для соответствия нескольким возможным средам в файле

Можно попытаться отредактировать конфигурацию Firefox с помощью about:config:

1
31.12.2013, 18:29
2 ответа

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

sed -n '/\\begin{FOO}/,/\\end{FOO}/p;
        /\\begin{FOO1}/,/\\end{FOO1}/p;
        /\\begin{FOO2}/,/\\end{FOO2}/p;' ./*.tex >> newfile.txt

где НЕЧТО == thm, FOO1 == lem, FOO2 == опора.

2
27.01.2020, 23:28

Вы, кажется, напрасно усложнили вещи, если это все одни строки, все, в чем Вы нуждаетесь,

sed -n '/\\begin{FOO}/p' >> newfile.txt

Не уверенный, почему Вы также соответствуете \end если Вы не хотите исключить любой текст, который появляется впоследствии (но Ваш sed команда не будет).

Так или иначе более легкий путь состоял бы в том, чтобы просто использовать grep вместо этого:

grep -P '\\begin\{(thm|prop|lem)\}' *tex

Или, в sed:

sed -n '/\\begin{thm}/p; /\\begin{prop}/p; /\\begin{lem}/p' *tex

Или Perl:

perl -ne 'print if /\\begin{thm|lem|prop}/' *tex
1
27.01.2020, 23:28
  • 1
    я думаю, что опускает вопрос, то, что \end{FOO} может быть (и обычно) на другой строке от \begin{FOO}. потрясающий –  Gilles 'SO- stop being evil' 29.12.2013, 22:13
  • 2
    Как выше, это не будет работать на меня, потому что они не появляются на той же строке, я предполагаю, что должен был сделать это более ясным в операторе. –  sdf 31.12.2013, 09:20

Теги

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