How to remove pattern from line but return what remains?

Попросите программу, которая производит эти цвета, остановиться или удалите эти цвета сами:

sed "s,\x1B\[[0-9;]*[a-zA-Z],,g"

^ У меня это есть в исполняемом файле с именем uncolor, так что я могу сделать:

aProgramThatWontStopColoring | uncolor
1
18.10.2018, 01:02
1 ответ

awkрешение. Найдите строку с eth, за которой следует число, за которым следует :, а затем распечатайте соответствующие столбцы.

$ ip a s | awk '/eth[0-9]*:/{print $2,$4,$5,$8,$9}'
eth0: mtu 1460 state UP
$

sedрешение, хотя кто-то укажет, что есть более приятный + более короткий путь.

$ ip a s | sed -n 's/^.*\(eth[0-9]*:\).*\(mtu [0-9]*\).*\(state [A-Z]*\).*/\1 \2 \3/p'
eth0: mtu 1460 state UP
$

grep+ cutраствор.

$ ip a s | grep -E 'eth[0-9]+:' | cut -f2,4,5,8,9 -d" "
eth0: mtu 1460 state UP
$
1
27.01.2020, 23:42

Теги

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