Нет входных данных от Logitech K400 + после модернизации Raps 4 до Ubuntu 21,04

после обновления Raspberry 4 с Ubuntu Desktop 20.04 до 21.04 (64bit) моя клавиатура Logitech K400 + не работает ни при каких обстоятельствах. После перезагрузки я могу ввести свой пароль, но после этого я не могу ввести ни одного символа. В терминале курсор не заполнен, и я также не могу ввести что-либо в поле URL браузеров или любой текст в Libre Office. Единственное, что работает при вводе, это всплывающие окна, например, для пароля при обновлении программного обеспечения. Тачпад работает fiel (немного медленно). При подключении старой USB-кабельной клавиатуры работает не только USB-кабельная клавиатура, но и Logitech K400 + внезапно.

Система, похоже, осведомлена о системе Logitech receiver

➜ ~ lsusb | grep Logitech

Bus 001 Device 003: ID 046d: c52b Logitech, Inc. Унификация приемника

Любая идея, которая может помочь?

Спасибо Caunus

-121--900241- Пакетное переименование каталога с использованием образца Соответствует Я хотел бы изменить эту структуру каталога на следующую. Несмотря на то, что существует другой вопрос о переименовании пакета каталогов, этот вопрос отличается. l '001. Арета Франклин - Respect.mp3 '* '...

Я хотел бы изменить эту структуру каталогов на структуру, следующую за ней. Несмотря на то, что существует другой вопрос о переименовании пакета каталогов, этот вопрос отличается.

l
'001. Aretha Franklin - Respect.mp3'*
'002. Ben E. King - Stand by Me.mp3'*
'003. Sam & Dave - Soul Man.mp3'*
'090. Archie Bell & The Drells; The Drells - Tighten Up, Pt. 1.mp3'*

for i in *.mp3; do echo $i | sed -E 's/([0-9]{3}. )(.*) *( - )(.*) *(.mp3)/\4\3\2\5/'; done;

Respect - Aretha Franklin.mp3
Stand by Me - Ben E. King.mp3
Soul Man - Sam & Dave.mp3
Tighten Up, Pt. 1 - Archie Bell & The Drells; The Drells.mp3

Если я пытаюсь использовать опцию на месте, я получаю это, с и без входного файла:

for i in *.mp3; do echo $i | sed -iE 's/([0-9]{3}. )(.*) *( - )(.*) *(.mp3)/\4\3\2\5/'; done;
sed: -e expression #1, char 47: invalid reference \5 on `s' command's RHS

и т.д.

for i in *.mp3; do echo $i | sed -iE 's/([0-9]{3}. )(.*) *( - )(.*) *(.mp3)/\4\3\2\5/'<$i; done;
bash: $i: ambiguous redirect

и т.д.

for i in *.mp3; do echo $i | sed -Ei 's/([0-9]{3}. )(.*) *( - )(.*) *(.mp3)/\4\3\2\5/'; done;
sed: no input files

и т.д.

for i in *.mp3; do echo $i | sed -Ei 's/([0-9]{3}. )(.*) *( - )(.*) *(.mp3)/\4\3\2\5/' <$i; done;
bash: $i: ambiguous redirect

и т.д.

В 1970-х годах мне удалось отредактировать каталог непосредственно в Unix, так как сам каталог является файлом. Кажется, я не в состоянии сделать это сегодня.

ви. дает пустой экран, заполненный обычными пустыми записями файла, и в нижней строке отображается следующее:

"." is a directory

, в то время как

ed .

Is a directory

Как изменить список каталогов массово сегодня? Как вы видите, у меня, наконец, мои выражения правильно проработаны, по крайней мере, в sed. Если с ними тоже есть проблемы, пожалуйста, дайте мне знать. Я очень благодарен за вашу помощь.

1
задан 25 April 2021 в 01:19

3 ответа

Когда вы это делаете,

echo $i | sed ...

sed работает с потоком байтов , считанных из стандартного входного потока, а не с записью каталога файла - поэтому редактирование «на месте» не имеет смысла.

Кроме того, GNU sed обрабатывает аргумент после -i как необязательный суффикс резервной копии, поэтому при записи sed -iE E будет больше не анализируется как флаг, указывающий на синтаксис расширенного регулярного выражения, что нарушает группировку захвата.

Если вы хотите переименовать файлы, манипулируя их именами с помощью sed, вам нужно захватить результирующий стандартный поток вывода с помощью подстановки команды и передать результат в качестве аргумента назначения в Команда mv , например:

for i in *.mp3; do mv -- "$i" "$(echo "$i" | sed -E 's/pattern/replacement/')"; done

или

for i in *.mp3; do mv -- "$i" "$(sed -E 's/pattern/replacement/' <<< "$i")"; done

, если вы хотите использовать перенаправление оболочки, а не конвейер для предоставления стандартного ввода в sed. Обратите внимание, что одна команда не может принимать стандартный ввод как от канала, так и от перенаправления - это «неоднозначное перенаправление».

(В 1970-х вы использовали обратные кавычки вроде `echo" $ i "| sed -E s / pattern / replacement /` для подстановки команд - сейчас они устарели, хотя все еще (поддерживается.) Обратите внимание на использование двойных кавычек, без которых команда разбивается на имена файлов, содержащие пробелы или другие специальные символы оболочки.

В текущих системах Ubuntu должна быть команда rename на основе Perl, которая может работать с директивами напрямую:

rename 's/pattern/replacement/' *.mp3

где шаблон - это Perl-совместимое регулярное выражение (PCRE). Также существует команда mmv (предоставляемая одноименным пакетом Ubuntu), которая работает с глобусами оболочки вместо регулярных выражений и часто проще для простой перегруппировки, такой как этот пример.:

mmv '*. * - *.mp3' '#3 - #2.mp3'

Как переименовать , так и mmv имеют параметр -n , который позволяет вам попробовать изменить имена.

1
ответ дан 26 April 2021 в 23:07

В качестве альтернативы вы можете использовать такой инструмент, как kid3-qt , который может читать теги ID3 из файлов MP3 и создавать собственное правило, как переименовывать файлы на основе нескольких различных тегов на выбор. Он может переименовать сразу целый каталог с файлами MP3.

0
ответ дан 26 April 2021 в 23:07

Попробуйте mmv . В вашем случае:

mmv '[0-9][0-9][0-9]. * - *.mp3' '#5 - #4.mp3'

mmv использует # 1 для первого совпадения с подстановочными знаками, # 2 для второго и т. Д .; в этом шаблоне у нас есть три подстановочных знака для ведущих цифр, затем буквальная точка, буквальный пробел, затем исполнитель песни (# 4) и название песни (# 5), разделенные знаком "-".

В заменяемой части мы опускаем ненужные номера и меняем местами исполнителя и название.

Жизнь может быть такой простой, если вы используете правильные инструменты. ; -)

ммв чудо. Прочтите страницу руководства и поэкспериментируйте; вы найдете это стоящим.

Возможно, вам придется установить пакет: sudo apt install mmv .

0
ответ дан 26 April 2021 в 23:07

Другие вопросы по тегам:

Похожие вопросы: