регулярное выражение для точного соответствия 5 цифрам

Предлагаемый ответ с использованием «sed -r» зависит от GNU sed, что делает его не очень портативным. Можно выполнять те же функции с POSIX sed, но по-разному: POSIX не предусматривает передачу всего скрипта в командной опции, как показано здесь. Это означает, что способ (POSIX) для реализации цикла будет находиться в отдельном файле, переданном sed с использованием опции «-f». Аналогично, шестнадцатеричные константы не переносимы. После внесения этих изменений функциональный эквивалентный сценарий может быть использован в системах BSD и Unix.

В предлагаемом ответе также не рассматриваются некоторые виды использования возвратов каретки, которые довольно распространены (например, в выходном файле yum ), и не отфильтровывает «большинство» ANSI-последовательностей (поскольку в нем основное внимание уделяется окончательному символу SGR «m»). Наконец, это означает

escape _ text _

как расширение xterm. Но такое расширение не обеспечивается xterm, потому что два символа «escape» и «_» начинают последовательность Application Program Command (и xterm не реализует ни одного).

Полученное sed -script выглядит так: «[^] - символ escape-кода):

s/^[[[][<=>?]\{0,1\}[;0-9]*[@-~]//g
s/^[[]][^^[]*^G//g
s/^[[]][^^[]*^[\\//g
:loop
s/[^^H]^H\(.\)/\1/g
t loop
s/^M^M*$//g
s/^.*^M//g
s/^[[^[]//g

Здесь можно найти более полный скрипт с именем« script2log » здесь . Есть, однако, вещи (такие как CSI K), которые не подходят для сценария sed.

30
задан i need help 12 February 2011 в 01:46
поделиться