Спасибо за ссылку в вашем комментарии, JigglyNaga. Отсюда я обнаружил, что моя команда du -hs bin
показывает использование диска содержимым каталога. На самом деле есть два отдельных образа, смонтированных на каждой из двух точек монтирования (mount1 разделен на разделы, mount2 - это просто файловая система в чистом виде ext3).
Согласно ссылке в комментарии, если я хочу проверить размер файла или каталога отдельно, без учета дискового пространства, я могу использовать ls -l
или du - b
. При этом размер корзины и все ее содержимое одинаковы для обеих точек монтирования. С этого момента я буду использовать эти команды. Спасибо!
По умолчанию grep
печатает строки , соответствующие шаблону, поэтому, если шаблон появляется один или несколько раз в строке, grep
напечатает всю строку .
Добавление флага -m 7
укажет grep
напечатать только первые 7 строк, в которых появляется шаблон.
Итак, это должно делать то, что вы хотите (я не тестировал):
grep -o -m 1 xyz myfile | head -1
Изменить: как указано @Kusalananda, вам не нужен строго флаг -m
, но используйте его означает, что grep
не нужно анализировать весь файл, и результат будет быстрее, особенно если myfile
- большой файл.
Ответ на ваш вопрос находится в Страница руководства grep:
$ grep -m1 'searchstring' имя_файла
Параметр -m является ключом. -m1 покажет только первое совпадение, -m 2 - первые 2 совпадения и так далее.