В течение долгого времени я сделал именно то, что сделал bcwood. Я сохраняю копии web.dev.config, web.test.config, web.prod.config и т. Д. Под контролем источника, а затем моя система build / deploy автоматически переименовывает их по мере развертывания в различных средах. Вы получаете определенную избыточность между файлами (особенно со всеми материалами asp.net там), но в целом он работает очень хорошо. Вы также должны убедиться, что все в команде помнят, чтобы обновить все файлы, когда они вносят изменения.
Кстати, мне нравится держать «.config» в конец в качестве расширения, чтобы ассоциации файлов не были сломаны.
Что касается локальных версий конфигурационного файла для разработчиков, я всегда стараюсь изо всех сил побуждать людей использовать те же локальные настройки, насколько это возможно так что нет необходимости иметь свою собственную версию. Это не всегда работает для всех, и в этом случае люди обычно просто заменяют его локально по мере необходимости и идут оттуда. Это не слишком больно или что-то еще.
Вот некоторые способы сделать это:
grep --color -E 'pattern|$' file
grep --color 'pattern\|$' file
egrep --color 'pattern|$' file
Я хотел бы рекомендовать ack - лучше, чем grep, мощный инструмент поиска для программистов .
$ ack --color --passthru --pager="${PAGER:-less -R}" pattern files
$ ack --color --passthru pattern files | less -R
$ export ACK_PAGER_COLOR="${PAGER:-less -R}" $ ack --passthru pattern files
Мне это нравится, потому что по умолчанию используется рекурсивный поиск по каталогам (и он намного умнее, чем grep -r
), поддерживает полные регулярные выражения Perl (а не POSIXish regex(3)
] ) и имеет намного более приятный контекстный контекст при поиске во многих файлах.
Вот сценарий оболочки, который использует функцию Awk gsub для замены текста, который вы ищете, соответствующей escape-последовательностью, чтобы отобразить его ярко-красным цветом:
#! /bin/bash
awk -vstr=$1 'BEGIN{repltext=sprintf("%c[1;31;40m&%c[0m", 0x1B,0x1B);}{gsub(str,repltext); print}' $2
Используйте его так:
$ ./cgrep pattern [file]
К сожалению, он не обладает всеми функциями grep.
Для получения дополнительной информации вы можете обратиться к статье « So You Like Color » в Linux Journal
Хорошо, это один способ,
wc -l filename
даст вам количество строк - скажем, NN, тогда вы можете сделать
grep -C NN --color=always filename
Вот что-то в том же духе. Скорее всего, вы все равно будете использовать меньше, поэтому попробуйте следующее:
less -p pattern file
Он выделит шаблон и перейдет к первому его появлению в файле.
I use rcg from "Linux Server Hacks", O'Reilly. It's perfect for what you want and can highlight multiple expressions each with different colours.
#!/usr/bin/perl -w
#
# regexp coloured glasses - from Linux Server Hacks from O'Reilly
#
# eg .rcg "fatal" "BOLD . YELLOW . ON_WHITE" /var/adm/messages
#
use strict;
use Term::ANSIColor qw(:constants);
my %target = ( );
while (my $arg = shift) {
my $clr = shift;
if (($arg =~ /^-/) | !$clr) {
print "Usage: rcg [regex] [color] [regex] [color] ...\n";
exit(2);
}
#
# Ugly, lazy, pathetic hack here. [Unquote]
#
$target{$arg} = eval($clr);
}
my $rst = RESET;
while(<>) {
foreach my $x (keys(%target)) {
s/($x)/$target{$x}$1$rst/g;
}
print
}