Похоже, вы хотите получить все строки, содержащие хотя бы одно слово из набора, из набора файлов.
Предполагая, что у вас нет многих тысяч файлов, вы можете сделать это с помощью одной grep
команды:
grep -wE '(ID|Instance|NOT|AI|Sitting)'./*merged >outputfile
Это позволит извлечь строки, соответствующие любому слову, указанному в шаблоне, из файлов, чьи имена соответствуют *merged
.
-w
с grep
гарантирует, что заданные строки не будут совпадать как подстроки (, т.е. NOT
не будут совпадать вNOTICE
). Опция -E
включает чередование с |
в шаблоне.
Добавьте в команду параметр -h
, если вы не хотите, чтобы имена файлов, содержащих совпадающие строки, выводились.
Если у вас много тысяч файлов, приведенная выше команда может завершиться ошибкой из-за слишком длинной командной строки. В этом случае вы можете сделать что-то вроде
for file in./*merged; do
grep -wE '(ID|Instance|NOT|AI|Sitting)' "$file"
done >outputfile
, который будет запускать команду grep
один раз для каждого файла, или
find. -maxdepth 1 -type f -name '*merged' \
-exec grep -wE '(ID|Instance|NOT|AI|Sitting)' {} + >outputfile
, который будет выполнять как можно меньше вызовов grep
с максимально возможным количеством файлов одновременно.
Связанные:
Это трудно сделать просто.
Его легко сделать, когда вы нажимаете префикс, просто отключите параметр префикса и вместо этого привяжите клавишу:
set -g prefix None
bind -n C-b set status on \; switchc -Tprefix
Проблема заключается в том, чтобы убедить его выключаться при нажатии клавиши, потому что нет хука для "произошла любая команда". Вы можете изменить другие привязки клавиш, чтобы отключить его, поэтому c
становится:
bind c set status off \; new-window
Но это было бы больно делать для каждого ключа.
Кроме того, вы можете просто отключить его через секунду или около того, независимо от того, что-то вроде:
set -g prefix None
bind -n C-b set status on \; run -b "sleep 1; tmux set -t'#{session_id}' status off" \; switchc -Tprefix
Но это может раздражать, если вы хотите выполнить несколько команд одну за другой. Хотя вы, вероятно, могли бы написать что-то более сложное, чем этот -, возможно, обновить время нажатия C -b в пользовательской опции и снова отключить статус, только если он был достаточно длинным.
Если вы должны отключить его, как только будет нажата следующая клавиша, вам остается либо изменить каждую другую привязку клавиш, либо изменить tmux для запуска хука, который вы можете использовать.