Як у bash помилки перенаправити інішій команді по конвеєру, не використовуючи тимчасовий файл?
-------------------
У файлі є чотири слова root
rdr@rdr:~$ grep root passwd
operator:x:11:0:operator:/root:/bin/bash
root:x:0:0::/root:/bin/bash
root
rdr@rdr:~$ grep -c root passwd #команда нараховує три рядка.Це я розумію
3 #тому, що два рази слово повтрюється в одному
#Вивести перші два співпадіння (??)
rdr@rdr:~$ last |grep -i sep -m2
rdr :0 Thu Sep 20 22:03 still logged in
reboot system boot 2.6.17.13-rdr-ok Thu Sep 20 22:01 (02:11)
Про ^ та $ я зрозумів, що до чого:
rdr@rdr:~$ grep :$ passwd -m2
adm:x:3:4:adm:/var/log:
bin:x:1:1:bin:/bin:
-------------------------------------------------------------------------
Про команду man grep я знаю, але щось я неможу аж ніяк зрозуміти регулярних виразів.
Конкретніше до підпункту REGULAR EXPRESSIONS ще якось розуміється, а після не дуже.
Питання: Як вивести рядки, якщо співпадінь рівно Х, або більше ніж Х?
У файлі ~/passwd рядків із словом root 3,
параметри:
{n} The preceding item is matched exactly n times.
означає вивід, якщо співпадань строго n
---------------
{n,} The preceding item is matched n or more times.
означає ?вивести, якщо співпадань n або більше.
Куди ліпити цю опцію?
rdr@rdr:~$ grep root passwd -m,2
grep: неверное максимальное количество совпадений
#Були і інші спроби щось сотворити, але нічого потрібного не виходить.
*********************************
Що я хочу від Вас? Та нічого складного, просто покажіть мені і всім як приввильно використовувати параметри цієї команди.
Тут на прикладах.
... і ще декілька прикладів використання регулярних виразів, у цій команді, я хочу побачити тут.