Lathund för terminalkommandon i linux/grep

Från Wikibooks


grep – Hittar text i en fil (eller flera)

Grep är ett kommandoradsverkygt (ett kommandoradsverktyg är en mekanism för att interagera med en dator operativsystem eller program genom att skriva kommandon för att utföra specifika uppgifter).

Grep kommandot letar genom den givna filen eller filerna och söker rader som innehåller de givna strängarna (egentligen: reguljära uttrycken). Raderna som matchar skrivs ut. Om man gav mer än ett filnamn anges också i vilken fil en viss rad hittades.

Kommando exempel:

grep ordet "filnamn"
grep "sträng1.*sträng2" "filnamn"
cat otherfile | grep "något"
kommando | grep "något"

Om man vill söka efter uttryck med specialtecken är det ibland praktiskt att ge växeln "-F", som tolkar söksträngen som ren text. Om något av tecknen kan vara kodat på olika sätt (såsom "å" i "något") kan det löna sig att försöka hitta något annat att söka på (eller använda ett reguljärt uttryck).

För att söka i en katalog efter den fil som innehåller ett visst uttryck kan man kombinera grep med find och xargs:

find katalog -print0 | xargs -0 grep "något" /dev/null

Här används -print0 och -0 för att undvika problem med filnamn som innehåller specialtecken och /dev/null som en "dummy"-fil för att grep säkert skall skriva ut filnamnet.