Простой способ окрасить альтернативные выходные строки в ударе

Никакое различие.

Заключение в кавычки от Sun:

Эти [] может появиться как часть типа в начале объявления, или как часть оператора объявления для конкретной переменной или обоих, как в этом примере: byte[] rowvector, colvector, matrix[];

Это объявление эквивалентно: byte rowvector[], colvector[], matrix[][];

12
задан Jon Seigel 4 April 2010 в 18:13
поделиться

4 ответа

Не очень красиво, но помогает:

(сохраните это в foo.bash и выполните grep где угодно | ./foo.bash)

#!/bin/bash
while read line
do
  echo -e "\e[1;31m$line"
  read line
  echo -e "\e[1;32m$line"
done
echo -en "\e[0m"

Здесь вы можете найти список цветовых кодов в bash .

15
ответ дан 2 December 2019 в 06:45
поделиться

Perl установлен во многих системах. Вы можете выбрать альтернативу:

grep -r whatever somedir/ | perl -pe '$_ = "\033[1;29m$_\033[0m" if($. % 2)'

В Perl $. можно заменить на $ INPUT_LINE_NUMBER , если вы предпочитаете удобочитаемость.

4
ответ дан 2 December 2019 в 06:45
поделиться

и здесь то же самое в python:

import sys
for line_number,line in enumerate(sys.stdin.readlines()):
    print '%s[1;3%dm%s%s[0m' % (chr(27),(line_number % 2+1),line,chr(27)),
2
ответ дан 2 December 2019 в 06:45
поделиться

Я полагаю, это необходимо для обозначения обернутых строк? Этот сценарий оболочки использует цвет фона из палитры 256 цветов , чтобы не мешать другому выделению, которое может сделать grep --color.

#!/bin/sh
c=0
while read line; do
  [ $(($c%2)) -eq 1 ] && printf "\033[48;5;60m"
  printf "%s\033[0m\n" "$line"
  c=$(($c+1))
done

Здесь есть оговорка, что обратная косая черта и т. д. внутри строки будет искажена, поэтому рассматривайте это как псевдокод для повторной реализации

2
ответ дан 2 December 2019 в 06:45
поделиться