Обходной путь
Найдите конфликтующий порт и отключите его.
Это можно сделать с помощью HDAJackRetask -, выбрать правильную звуковую карту/кодек (, например. Realtek ALC892 ), найдите конфликтующий порт/контакт (, например. 0x1b )и переопределите его на «Не подключено». Затем нажмите «Применить сейчас».
Если появляется сообщение об ошибке «Устройство или ресурс занят», вам необходимо временно полностью отключить pulseaudio. В зависимости от обстоятельств это сработает:
После этого вы можете нажать «Установить переопределение загрузки», чтобы исправление применялось и при следующем перезапуске. Делайте это только тогда, когда вы уверены, что это работает, конечно.
Вы можете использовать, например,. \x27
в строке Perl (код символа для '
в шестнадцатеричном формате):
$ perl -e 'print "foo\x27bar"' -l
foo'bar
или обрабатывать кавычки в оболочке, чтобы дать Perl сырой'
:
$ perl -e 'print "foo'\''bar"' -l
foo'bar
(Первый '
завершает строку в кавычках, \'
вставляет кавычки, третий '
начинает новую строку в кавычках.)
Вы можете изменить каждый '
на '\''
. Но это скоро станет некрасиво.
Лучше использовать -документ для вашего скрипта:
perl -pi - <<'EOT' file.txt
/DB_CHARSET/ and $_.="define('SOMETHING'/, true);\n"
EOT
Обратите внимание на кавычки вокруг EOT
. Если терминатор документа здесь -не находится в (одинарных или двойных )кавычках,$
-начальные переменные, арифметические подстановки, обратные кавычки и т. д. будут расширены внутри документа здесь -. Это немного отличается от здесь -документов на Perl, где только одинарные кавычки предотвратят раскрытие переменных.
Один из способов — использовать -s
для включения рудиментарной обработки переключателей в командной строке perl и, таким образом, определить там одинарную кавычку:
$ perl -spi -e '$_ .= qq/define(${q}SOMETHING$q, true);/' -- -q=\' file