Если вы хотите найти имена в текущем каталоге или ниже, которые содержат строки bingo
и number
, в любом случае вы не должны передавать вывод ls -R
через awk
, а вместо этого использоватьfind
:
find. -iname '*bingo*' -iname '*number*'
Предикат -iname
не является стандартным -, но обычно реализуется и нечувствительно сопоставляет имя просматриваемого в данный момент файла с заданным регистром шаблона подстановки -.
Если вы хотите получить имя файла только , а не полный путь к найденным файлам, используйте
find. -iname '*bingo*' -iname '*number*' -exec basename {} \;
С GNU find
вы можете использовать
find. -iname '*bingo*' -iname '*number*' -printf '%f\n'
, что будет быстрее, чем использование basename
.
Если вы знаете, что порядок двух слов таков: «bingo
, за которым следует number
», используйте -iname '*bingo*number*'
с find
вместо двух -iname
тестов.
Если вы знаете, что это именно тот порядок слов, который вы хотите найти, вы также можете использовать bash
напрямую:
shopt -s globstar # enable ** to match across / in pathnames
shopt -s nocaseglob # enable case-insensitive globbing
shopt -s failglob # error when a pattern does not match anything
printf '%s\n' **/*bingo*number*
Чтобы получить часть пути к имени файла:
shopt -s globstar nocaseglob failglob
for name in **/*bingo*number*; do
basename -- "$name"
done
или, если у вас есть GNU basename
и вы не ожидаете когда-либо сопоставить тысячи файлов,
shopt -s globstar nocaseglob failglob
basename -a -- **/*bingo*number*
где -a
указывает утилите отображать часть имени файла каждого аргумента (несколько аргументов ).
Стефан указывает в комментариях, что игнорировать порядок двух подстрок, например, в. bash
, вы можете использовать расширенный шаблон подстановки
!(!(*bingo*)|!(*number*))
Это работает путем сопоставления всех имен, кроме имен, которые не содержат ни одной из двух строк.Таким образом, вы получите
shopt -s globstar nocaseglob failglob
shopt -s extglob # for extended globbing patterns in bash
for name in **/!(!(*bingo*)|!(*number*)); do
basename -- "$name"
done
Связанные:
Оказалось, что это аппаратная проблема. В машине есть две антенны, которые должны быть подключены к очень крошечным штекерам машины на мини-плате беспроводной связи. Я подключил их, и беспроводная связь начала работать плохо.
Если у кого-нибудь есть предложение, как я мог обнаружить это в журналах, это было бы очень полезно.
Вы не сказали NetworkManager держать свои электронные пальцы подальшеwlp3s0
(= nmcli dev status
не говорит unmanaged
вместо ), и вы не сказали NetworkManager, что вы хотите делать с адаптером WiFi, поэтому он предполагает, что вы хотите оставить его отключенным в состоянии энергосбережения -, и предпринимает шаги, чтобы это произошло.
Отмените все, что вы могли сделать для запуска wpa_supplicant
вручную, и пусть NetworkManager справится с этим.
Например, если имя вашей беспроводной сети my_wifi
и сетевой пароль <password>
, просто введите эту команду:
nmcli d wifi connect my_wifi password '<password>'