Grep внутри файла /sys ничего не возвращает

Извините, нет awk.

$ paste -d\| <(cut -d\| -f4 file) <(cut -d\| -f3 file) <(cut -d\| -f2 file) <(cut -d\| -f1 file)
London|First|Hunk|1
London|Second|Hero|2
Pow|First|Will|3
Pow|Second|Thomas|4
Berlin|First|Venus|5
$ sed -E 's/(.*)\|(.*\|)(.*\|)(.*)/\4|\3\2\1/' file
London|First|Hunk|1
London|Second|Hero|2
Pow|First|Will|3
Pow|Second|Thomas|4
Berlin|First|Venus|5
7
10.07.2020, 16:18
2 ответа

Вместо этого используйте любой из них:

grep -rn /sys/class/tty/* -e 0x40010000 2> /dev/null

grep -Rn /sys/class/tty/ -e 0x40010000 2> /dev/null

Glob в первой команде необходим для того, чтобы он следовал символическим ссылкам, которые не указаны в командной строке, поскольку содержимое /sys/class/ttyявляется символическими ссылками на содержимое /sys/devices/virtual/ttyи /sys/devices/platform/serial####/tty.

-Rво второй команде следует за символическими ссылками по умолчанию, без необходимости в подстановке.

Я добавил 2> /dev/nullдля отправки сообщений Input/output errorи Permission deniedна /dev/null, поскольку вывод легче читать, когда все это не возвращается.

6
18.03.2021, 23:20

Записи в /sys/class/ttyявляются символическими ссылками на каталоги в другой части /sys, которая организована в соответствии с внутренним подключением устройств. grep -rне переходит по символической ссылке на каталоги.

grep -Rследует символическим ссылкам, но следовать каталогам при рекурсивном обходе /sys— плохая идея, потому что существуют бесконечные циклы.(/sys/foo/bar— это ссылка на /sys/corge/wibble, которая ссылается на/sys/foo).

Так что указывайте пути точнее. Этого достаточно для поиска во всех файлах всех tty-устройств:

grep -l -r -x 0x40010000 /sys/class/tty/*/

Между прочим, поскольку вы уже знаете все содержимое файла и хотите знать имя файла, -nбесполезна, а -lдает вам четкий вывод. -xпомогает избежать ложных срабатываний (, но здесь это не обязательно, так как содержимое iomem_baseимеет фиксированную длину ).

Но поскольку вы знаете базовое имя файла, просто выполните поиск по нему.

grep -l -x 0x40010000 /sys/class/tty/*/iomem_base
6
18.03.2021, 23:20

Теги

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