mit grep nur einen wert finden oder grep und leerstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
netlord
Beiträge: 24
Registriert: 23.12.2011 11:33:05

mit grep nur einen wert finden oder grep und leerstellen

Beitrag von netlord » 06.03.2014 21:42:44

hallo forum

ich bin da gerade über eine frage gestolpert die - ich zumindest - nicht beantworten kann.
es ging darum um mit grep nur einem alleinstehenden wert zu finden.
also z.b. darum welche module geladen wurden, aber offenbar nicht benutzt werden.

also lsmod eingeben - es sind einige module da bei denen in der spalte "used by" 0 drin steht.
mich würden also nur die module interessieren die ein 0 drin haben (dass sie unter umständen trotzdem gebraucht werden ist mir klar - mir gehts im moment um grep) also

Code: Alles auswählen

grep lsmod | grep  [0] oder auch lsmod | grep 0
jetzt werden aber auch die module angezeigt welche ein 0 im modulnamen oder in der grösse haben.

wie kann ich nach grep [<leerstelle>0</leerstelle>] suchen?
danke und gruß

netlord

Benutzeravatar
hikaru
Moderator
Beiträge: 13908
Registriert: 09.04.2008 12:48:59

Re: mit grep nur einen wert finden oder grep und leerstellen

Beitrag von hikaru » 06.03.2014 23:46:05

netlord hat geschrieben:wie kann ich nach grep [<leerstelle>0</leerstelle>] suchen?

Code: Alles auswählen

grep ' 0 '

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: mit grep nur einen wert finden oder grep und leerstellen

Beitrag von Cae » 07.03.2014 00:10:23

Und weil die Size theoretisch auch 0 sein koennte, wuerde ich

Code: Alles auswählen

$ lsmod | grep ' 0 $'
empfehlen. Oder mit awk (weil ich den toll finde):

Code: Alles auswählen

$ lsomd | awk '"0"==$3'
Das gibt nur die Zeilen aus, in denen die dritte Spalte $3 gleich dem String "0" ist. Da print die implizite Standardanweisung ist, tut dies dasselbe wie

Code: Alles auswählen

$ lsmod | awk '{if("0"==$3)print($0)}'
(wobei hier auch noch das $0 samt Klammern () redundant ist, weil es der Standardwert fuer print ohne Argumente ist)

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

theAllf
Beiträge: 54
Registriert: 16.09.2013 19:06:08

Re: mit grep nur einen wert finden oder grep und leerstellen

Beitrag von theAllf » 07.03.2014 09:15:30

Du kannst grep auch eine perl-regex mitgeben.
Mit diesem Beispiel suchst du im Prinzip auch nur nach 0 nach dem zweitem "Wort".

Code: Alles auswählen

lsmod | grep -P '\b\b0'
Eine Regular Expression dürfte so ziemlich die flexibelste Art sein nach Textmustern, egal welcher Art, zu suchen.
Erfordert leider etwas Einarbeitungszeit die sich aber in der Regel auszahlt.

netlord
Beiträge: 24
Registriert: 23.12.2011 11:33:05

Re: mit grep nur einen wert finden oder grep und leerstellen

Beitrag von netlord » 07.03.2014 19:47:43

danke für die antworten

Code: Alles auswählen

grep ' 0 '
gefällt mir ehrlich gesagt am besten.
ich habs mit klammern uns versucht - aber nicht mit '

wieder was gelernt...
danke und gruß

netlord

Antworten