Только для чего-то другого...
Следующий сценарий не использует grep
во второй раз вокруг. Это полагается только на номера строки, собранные grep в первый шаг и использование sed
для распечатки..
grep -HnZ
используется в первом шаге: H
для имени файла, n
для номера строки, и Z
для нетекстового разделителя \x00
между именем файла и linenumber.
Я не думаю, что это будет очень (если таковые имеются) быстрее, чем выполнение grep
по файлам, которые были определены в первом пути, потому что каждый из определенных файлов должен быть просканирован в любом случае. Также это не точно если что-либо соответствующие изменения во входе набора данных в первом шаге. (Это просто поймало мой интерес, таким образом, здесь это..)
# create 2 test files.
printf '%s\n' {a..z} >junk1
printf '%s\n' {a..z} >junk2
# Make list of filenames and line numbers
# then convert the list into a shell script
# which uses 'sed' to list the lines
grep -HnZ "[gms]" junk1 junk2 |
# Make list of filenames and line numbers
awk -v"C=2" 'BEGIN{ FS="[\x00:]"
print "#!/bin/sh"
}
{ negC=$2-C; if (negC<1){negC=1}; posC=$2+C }
prev != $1 {
if( prev ) print prev_grp "\""
prev = $1
prev_grp = "<\"" $1 "\" sed -nr \"" \
negC"i -- ("negC","$2","posC") "$1"\n\t"negC","posC"{p;b};"
next
}
{ prev_grp = prev_grp" " \
negC"i -- ("negC","$2","posC") "$1"\n\t"negC","posC"{p;b};"
}
END{ if( prev ) print prev_grp "\"" }
'>junk.sh
chmod +x junk.sh
./junk.sh
Это - вывод начальной буквы grep
команда, показывая пустой указатель как \x00
junk1\x007:g
junk1\x0013:m
junk1\x0019:s
junk2\x007:g
junk2\x0013:m
junk2\x0019:s
Вот сгенерированный сценарий
#!/bin/sh
<"junk1" sed -nr "5i -- (5,7,9) junk1
5,9{p;b}; 11i -- (11,13,15) junk1
11,15{p;b}; 17i -- (17,19,21) junk1
17,21{p;b};"
<"junk2" sed -nr "5i -- (5,7,9) junk2
5,9{p;b}; 11i -- (11,13,15) junk2
11,15{p;b}; 17i -- (17,19,21) junk2
17,21{p;b};"
Вот подобный grep вывод (n, n, n) linenumbers (от, подобранный, к)
-- (5,7,9) junk1
e
f
g
h
i
-- (11,13,15) junk1
k
l
m
n
o
-- (17,19,21) junk1
q
r
s
t
u
-- (5,7,9) junk2
e
f
g
h
i
-- (11,13,15) junk2
k
l
m
n
o
-- (17,19,21) junk2
q
r
s
t
u
Это было бы симпатично просто для добавления цвета, но будет легче использовать grep
, (если это не предлагает ничего желательного).
Существует определенный для Fedora интерфейс командной строки к Bugzilla, предоставленному python-bugzilla
пакет. Это может быть самым близким к вещи Debian reportbug
.
Как альтернатива, можно попробовать линейный интерфейс групповой команды, обеспеченный pybugz
пакет. Однако это не определенный для Fedora инструмент.
Существует другой определенный для Fedora названный инструмент командной строки perl-Fedora-Bugzilla
. Однако этот пакет был осиротевшим, и это не может быть совместимо с последней версией Bugzilla, что Fedora является using1.
Fedora использует Автоматический Инструмент создания отчетов Ошибки (abrt
). В большинстве установок это включено и работающий по умолчанию. Это, как предполагается, автоматически запускает уведомление, когда программа отказывает, и ведите Вас через соответствующие шаги для регистрации ошибки bugzilla.redhat.com. Можно запустить его вручную и рассмотреть предыдущие отчеты о катастрофическом отказе путем движения в Операции и ввод abrt
.
К сожалению, этот инструмент не может использоваться для создания безотносительно ошибки, которую Вы хотите. Ошибка должна быть основана на катастрофическом отказе, который заметил инструмент.
1 посмотрите ошибку 823417
abrt
в большой степени повреждается тем, что это не позволяет Вам сообщить об ошибках вручную - и это - помеха для UX, если пользователям будут нужны два различных инструмента для различных классов ошибок... – jcora 15.05.2013, 21:35bugzilla
. Я исправил ответ так, чтобы это было определенным для Fedora (Вы не должны указывать адрес для представления ошибок Fedora). Кроме того, инструмент обеспечиваетсяpython-bugzilla
пакет, неbugzilla
пакет. Извините за ошибки. разговор – drs 15.05.2013, 22:20