@Giles говорит, что это очень зависимо от платформы. Вот один такой пример.
Я выполняю систему CentOS 5.5. Эта система имеет 4 диска и 3ware RAID-контроллер.
В моем случае, lshw -class disk
, cat /proc/scsi/scsi
и parted --list
показывает RAID-контроллер (3ware 9650SE-4LP). Это не показывает фактические дисковые емкости:
только показывает 3ware RAID-контроллер, который обеспечивает/dev/sda объем:
# lshw -class disk
*-disk
description: SCSI Disk
product: 9650SE-4LP DISK
vendor: AMCC
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: AMCC Model: 9650SE-4LP DISK Rev: 4.06
Type: Direct-Access ANSI SCSI revision: 05
# parted --list
Model: AMCC 9650SE-4LP DISK (scsi)
Disk /dev/sda: 2000GB
Для наблюдения дисков, которые лежат внизу, я должен был установить tw_cli утилиту от 3ware и спросить сам контроллер.
# tw_cli info c0
...
VPort Status Unit Size Type Phy Encl-Slot Model
------------------------------------------------------------------------------
p0 OK u0 931.51 GB SATA 0 - WDC WD1002FBYS-02A6
p1 OK u0 931.51 GB SATA 1 - WDC WD1002FBYS-02A6
grep --color -E "test|$" yourfile
Что мы делаем, здесь соответствует против $
шаблон и тестовый шаблон, очевидно $
ничего не имеет к colourize поэтому, только тестовый шаблон получает цвет. -E
просто включает расширенное соответствие regex.
Можно создать функцию из него легко как это:
highlight () { grep --color -E "$1|$" "${@:1}" ; }
ack --passthru --color string file
для Ubuntu и Debian, используйте ack-grep вместо ack
ack-grep --passthru --color string file
-r-sr-s--- 1 root db2iadm1 147K Feb 1 23:32 /var/lib/db2/db2inst1/sqllib/adm/db2syscr*
---------121 большое спасибо--------44882----за Ваш ответ. Я уже установил его через виртуальную машину, как объяснено в вышеупомянутом ответе. BTW поле семени mandriva, кажется, более легкая опция. Конечно, попробует его в следующий раз, когда кажется, что $PWD оценен только в первый раз apt-get -t stable install php5-memcached
Не работал: php5-memcached : Depends: libmemcached11 but it is not installable E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
---------121 спасибо--------138639----, но это не работало на меня. Я отодвинул папку, впоследствии перезапустил gedit, но тем не менее темой является нестандартная, а также используемые плагины являются теми, я имел в прошлый раз, когда я использую rm -f
часто на clean
цель в Makefile
s--------121--------55005----@terdon я использую GNU grep
2.12--------121--------137117----Спасибо за Ваш ответ. Но можно ли сказать что-то больше относительно того, каков тот рекурсивный метод? Я слышу его в 1-й раз, когда кажется, что этот сценарий делает то же самое три раза, я установил его на том же разделе, где я установил его в прошлый раз Эй, я не перерабатывал это, как прошлый раз, Да l
этимологически для длинного целого со времени где long
s, где 32 бита шириной. l
остался и, как гарантируют, останется 32 бита шириной даже в системы где long
s более широки (так l
больше средства long
на практике). Использовать l!
если Вы хотите свою систему/компилятор long
s--------121--------122412----[root@CentOS-7} # об/мин-ql iptables-services.x86_64/etc/sysconfig/ip6tables/etc/sysconfig/iptables/usr/lib/systemd/system/ip6tables.service/usr/lib/systemd/system/iptables.service/usr/libexec/initscripts/legacy-actions/ip6tables/usr/libexec/initscripts/legacy-actions/ip6tables/panic/usr/libexec/initscripts/legacy-actions/ip6tables/save/usr/libexec/initscripts/legacy-actions/iptables/usr/libexec/initscripts/legacy-actions/iptables/panic/usr/libexec/initscripts/legacy-actions/iptables/save/usr/libexec/iptables/usr/libexec/iptables/ip6tables.init/usr/libexec/iptables/iptables.init---------121--------78156-Удостоверяется, что помнил это в следующий раз, Что Вы имеете в виду? Это не должно печатать никого x
s--------121--------101608----шаблон для графика может быть указан явно с --regexp string
; ack/ack-grep эквивалент --match string
– Rhubbarb
08.01.2015, 19:46
ack --passthru
с жемчугом: grep_passthrough () { ! perl -ne "print; \$e ||= /$@/; END{{exit \$e}}"; }
– Lucas Cimon
04.03.2016, 19:58
ack --passthru
также работы над потоками! Например, ifconfig | ack --passthru inet
– honkaboy
16.06.2016, 03:10
У меня есть следующая функция, которую я использую для таких вещей:
highlight () {
perl -pe "s/$1/\e[1;31;43m$&\e[0m/g"
}
Внутренне это выглядит довольно ужасным, это хорошо и просто в использовании, как так:
cat some_file.txt | highlight some_word
или, для немного большего реального примера:
tail -f console.log | highlight ERROR
Можно изменить цвета на что-либо, что Вы любите (который мог бы быть твердым с grep - я не уверен) путем изменения 1
и 31
и 43
(после того, как \e[
) к различным значениям. Коды для использования повсеместно, но вот быстрое введение: 1 bolds текст, 31
делает это красным, и 43
дает желтый фон. 32
или 33
были бы различные цвета, и 44
или 45
были бы различные фоны: Вы получаете идею. Можно даже заставить его мигнуть (с a 5
) если Вы так склонны.
Это не использует специальных модулей Perl, и Perl почти повсеместен, таким образом, я ожидал бы, что это будет работать примерно где угодно. grep решение очень умно, но - цвет включает grep, не доступно везде. Например, я просто попробовал это решение на ударе выполнения поля Solaris, и другое выполнение ksh и мою локальную машину Mac OS X, работающую zsh. Все работали просто великолепно. Солярис, дросселируемый на grep --color
решение, как бы то ни было.
Кроме того, ack является потрясающим, и я рекомендую это любому, кто еще не обнаружил его, но у меня были некоторые проблемы, устанавливающие его на нескольких из многих серверов, я продолжаю работать. (Я забываю почему: Я думаю связанный с модулями Perl, которых это потребовало.)
Так как я не думаю, что когда-либо работал над полем Unix, которое не имело Perl установленным (за исключением встроенных систем типов, маршрутизаторов Linksys, и такой) я скажу, что это - в значительной степени универсально применимое решение.
Можно попробовать:
perl -MTERM::ANSIColor -nle '/pattern/ ? print colored($_, 'color') : print' test
Не очень портативный однако, и даже если Perl установлен, Вы, возможно, должны загрузить другой модуль. Кроме того, это окрасит всю строку, не только поисковое слово.
Есть гораздо более простой способ сделать это для GNU grep, но я не думаю, что он переносимый (например, BSD grep):
В канале:
cat <файл> | grep --color = always -z
В файле:
grep --color = always -z
Кредит принадлежит Ответ Сайруса здесь .
Другой способ сделать это правильно и ] переносимо с grep
(помимо использования двух регулярных выражений с чередованием, как в принятом ответе) через нулевой шаблон (и, соответственно, нулевую строку).
Он должен одинаково хорошо работать с обоими переключателями -E
и -F
, поскольку в соответствии со стандартом :
-E
Match using extended regular expressions.
[...] A null ERE shall match every line.
и
-F
Match using fixed strings.
[...] A null string shall match every line.
Так что это просто вопрос запуска
grep -E -e '' -e 'pattern' infile
и соответственно
grep -F -e '' -e 'string' infile
Версия sed
,
работает как с bash
, так и с ash
.
#highlight
hsed(){
local pattern="$1"
shift
local r=`echo -e '\e'[31m`
local c=`echo -e '\e'[0m`
sed "s:${pattern//:/\:}:$r\0$c:g" "$@"
}
highlight () { grep --color -E "$1|$" $2 ; }
. Использование:highlight test yourfile
– Stefan Lasiewski 14.10.2010, 06:48"$2"
должен также быть заключен в кавычки. – Paused until further notice. 17.03.2011, 22:04highlight () { grep --color -E "$1|$" "$@" }
который позволяет файлы с пробелом на их имена и несколько файлов. – Mike DeSimone 24.07.2011, 08:34"$1"
в файлах. Использоватьhighlight () { grep --color -E "$1|$" "${@:1}" }
– Chris Down 17.11.2011, 13:48