Это связано с тем, что Qemu требует разрешения на выполнение по пути к файлу образа. Если образ находится на смонтированном диске, требуется разрешение +x в /media/$username
Лично я исправил эту проблему с помощью этой команды:
sudo chmod a+x /media/houcheng/
Остальные подробности см. здесь.
Может быть проще удалить все, кроме «заведомо хороших» символов. например. чтобы ограничить вывод стандартными символами ASCII, вы можете использовать
tr -dc '[^ -~\012\015]'
При этом будут сохранены только символы между ПРОБЕЛОМ и ~(, символом 126 )и символами CR/LF. Все остальное будет удалено.
В качестве альтернативы вы можете заменить их другим символом, например. пространство
tr -c '[^ -~\012\015]' ' '
который сохранит все уровни отступов
Наконец, вы можете увидеть это из-за настроек локали ; например, если ОС считает, что у вас есть UTF8, а терминал нет, вы можете увидеть это.
Таким образом, установка LANG=C
перед запуском команды может изменить вывод
LANG=C strings o1_mf_d3rrgv0l_.ctl
Это изменит то, что команда strings
считает печатным символом.
После интересного путешествия я надеюсь, что это ответ на ваш вопрос, с GNUgrep
:
Образецfile.txt
:
▒▒▒▒
▒▒▒▒
▒▒▒▒
foo
bar
@▒^@^@▒▒^@^@^@^@^@^@^@^@^@^@<▒^@^@^@^@@^@^@^@^D~z{|}^@^@^▒^@^@^@^@^@^@^@^@^@^@
$ grep -v $(printf %b \\U2592) file.txt
foo
bar