Grep, men kun en unit linie
Hej,
Jeg har lavet en grep commando der fungere fint, men den giver i visse tilfælde flere ens linier og jeg ønsker kun en unit linie, så skal den ikke vise de andre, er det muligt med grep?
Jeg har lavet en grep commando der fungere fint, men den giver i visse tilfælde flere ens linier og jeg ønsker kun en unit linie, så skal den ikke vise de andre, er det muligt med grep?
Kommentarer9
Ved ikke med grep, men du
Et mere detaljeret
#2
Kan du komme med et eksempel
Hvis du kan nøjes med
grep -m
det kan gøres på mange
jeg skal bruge unikke linjer
cat filnavn |grep "søge ord" |sort |uniq
jeg skal bruge sidste linje
cat filnavn |grep "søge ord" |tail -1
jeg skal bruge første linje
cat filnavn |grep "søge ord" |head -1
Grep kan tage imod
Så du kan spare din "cat"-pipe helt væk, således at kommandoen fx bliver til:
grep "søgeord" /sti/til/fil | tail -1
til 0021
Det er rigtigt at
Det er rigtigt at grep kan tage imod filnavne... det er bare en dårlig vane fra min side (:-
men det giver god forståelse for hvad der sker... så kan man f.eks. også regne ud, at man kan gøre det samme med en variabel eller et array.
eg. hvis man skal søge flere gange i samme fil.
var="`cat /var/log/syslog`"
echo "$var" |grep "søgeord"
(Jeg går ud fra, at OP har
#8
Såfremt du skal søge flere gange i samme fil kan du da lige så godt gøre sådan her, og stadig spare din cat og echo-kommando væk.
var="/sti/til/fil"
grep "søgeord" $var
Jeg mener stadig ikke, at din cat er nødvendig i så fald.