Отфильтровать непечатаемые символы типа «блок -как» с помощью grep

Это связано с тем, что Qemu требует разрешения на выполнение по пути к файлу образа. Если образ находится на смонтированном диске, требуется разрешение +x в /media/$username

Лично я исправил эту проблему с помощью этой команды:

sudo chmod a+x /media/houcheng/

Остальные подробности см. здесь.

1
26.01.2021, 11:03
2 ответа

Может быть проще удалить все, кроме «заведомо хороших» символов. например. чтобы ограничить вывод стандартными символами ASCII, вы можете использовать

tr -dc '[^ -~\012\015]'

При этом будут сохранены только символы между ПРОБЕЛОМ и ~(, символом 126 )и символами CR/LF. Все остальное будет удалено.

В качестве альтернативы вы можете заменить их другим символом, например. пространство

tr -c '[^ -~\012\015]' ' '

который сохранит все уровни отступов

Наконец, вы можете увидеть это из-за настроек локали ; например, если ОС считает, что у вас есть UTF8, а терминал нет, вы можете увидеть это.

Таким образом, установка LANG=Cперед запуском команды может изменить вывод

LANG=C strings o1_mf_d3rrgv0l_.ctl

Это изменит то, что команда stringsсчитает печатным символом.

0
18.03.2021, 22:34

После интересного путешествия я надеюсь, что это ответ на ваш вопрос, с GNUgrep:

Образецfile.txt:

▒▒▒▒
▒▒▒▒
▒▒▒▒
foo
bar
@▒^@^@▒▒^@^@^@^@^@^@^@^@^@^@<▒^@^@^@^@@^@^@^@^D~z{|}^@^@^▒^@^@^@^@^@^@^@^@^@^@

$ grep -v $(printf %b \\U2592) file.txt
foo
bar
0
18.03.2021, 22:34

Теги

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