после обновления 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. 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. Если с ними тоже есть проблемы, пожалуйста, дайте мне знать. Я очень благодарен за вашу помощь.
Когда вы это делаете,
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
, который позволяет вам попробовать изменить имена.
В качестве альтернативы вы можете использовать такой инструмент, как kid3-qt
, который может читать теги ID3 из файлов MP3 и создавать собственное правило, как переименовывать файлы на основе нескольких различных тегов на выбор. Он может переименовать сразу целый каталог с файлами MP3.
Попробуйте mmv
. В вашем случае:
mmv '[0-9][0-9][0-9]. * - *.mp3' '#5 - #4.mp3'
mmv
использует # 1
для первого совпадения с подстановочными знаками, # 2
для второго и т. Д .; в этом шаблоне у нас есть три подстановочных знака для ведущих цифр, затем буквальная точка, буквальный пробел, затем исполнитель песни (# 4) и название песни (# 5), разделенные знаком "-".
В заменяемой части мы опускаем ненужные номера и меняем местами исполнителя и название.
Жизнь может быть такой простой, если вы используете правильные инструменты. ; -)
ммв
чудо. Прочтите страницу руководства и поэкспериментируйте; вы найдете это стоящим.
Возможно, вам придется установить пакет: sudo apt install mmv
.