fgrep -cw 'word' file1 file2... fileN
Это выведет следующее:
file1:4
file2:16
и так далее, по одному в строке. Если это просто сумма всех файлов, сделайте что-то вроде этого:
echo "Total: $(( $(fgrep -cw 'word' file1 file2... fileN | awk -F: '{ print $NF" + " }') 0 ))"
, который будет выводить:
Total: 20
Ваши ссылки tldp немного устарели. И если вы посмотрите на /dev
просто как на часть файловой системы, вы упустите суть этой подсистемы.
В комментарии А.Б. упоминаются мажор/минор; но его ссылка - это просто необработанный список. Здесь выделенные устройства на kernel.org HTML есть дополнительная информация.
Я думаю, что фраза «все есть файл» в данном контексте вводит в заблуждение. Файлы в /dev
являются так называемыми специальными файлами , символьными или блочными. На это указывают буквы «с» или «b».
]# ls -l /dev/tty1 /dev/sda1
brw-rw---- 1 root disk 8, 1 Nov 5 17:27 /dev/sda1
crw------- 1 root tty 4, 1 Nov 7 05:48 /dev/tty1
А в документах мажор = 8:
8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk
Но это даже напрямую не объясняет, почему раздел с большим номером вдруг получает major=259:
]# ls -l /dev/sda16
brw-rw---- 1 root disk 259, 0 Nov 5 17:27 /dev/sda16
Я выбрал этот пример «sda», потому что это основное запоминающее устройство. Я не знаю, как это переводится на Android.
Блочные устройства (Разделы )могут быть записаны напрямую, но обычно они форматируются в файловой системе, а затем монтируются.
Как правило, файлы в /dev представляют собой интерфейс устройства, а не само устройство.
Сегодня /dev — это псевдо -файловая система, аналогичная /sys:
TARGET SOURCE FSTYPE
/dev dev devtmpfs
/sys sys sysfs
/ /dev/sda3 ext4
Во время загрузки /dev заполняется ядром. Пользователь может добавлять устройства, загружая модули. modprobe loop
дает вам /dev/loop0-7
например.
(Предлагаемое редактирование требует заполнения «udev» вместо «kernel». Я думаю, что это больше именование, чем заполнение как таковое. Если вы хотите углубиться в детали, вам лучше взглянуть на драйверы, модули или нет.)
Подключив внешнее usb хранилище, вы получаете sdb, sdc и т.д., но только если загружен модуль usb_storage
.
Интерфейс природа специальных файлов /dev также проявляется в именах :некоторые из них, такие как sda или tty, являются техническими, некоторые (в /dev/disk/by -... )являются ссылками для удобства или идентификации.