← Back to team overview

sslug-teknik team mailing list archive

Re: grep og "

 

On Mon, Oct 20, 2008 at 11:34:39 +0200, Torben Andersen wrote:
> Hejsa,
> 
> Har behov for noget i retning af:
> 
> cat $fil |grep "Repair Operator Name" >>samlet.txt
> cat $fil |grep "Panel Name" >>samlet.txt
> cat $fil |grep "Total Repair Time" >>samlet.txt
> 
> Selve disse linier virker efter hensigten
> 
> Jeg har det problem, at filen indeholder anførselstegn (") i de ønskede linier kombineret med, at jeg ønsker de tre linier samlet på en linie i output linien. Nogen råd?

" kan  "escapes" med backslash , dette samme
kan i øvrigt gøres med de fleste andre tegn der har speciel
betydning i shell.

Og er der mellemrum i filnavn kan " sættes udenom:

dvs. ved du hvor " er i tekst så medtage det i søgning,
f.eks.  :  Repair "Operator Name"

cat "$fil" | grep "Repair \"Operator Name\"" ...

I stedet for " kunne du bruge ' udenom, så behøver
du ikke escape " i strengen:  'Repair "Operator Name"'

grep bruger regular expression som er en avanceret måde
at lave specialiserede søgninger (ligesom i awk).

Det du vil er egentlig at kombinere flere tekster i søgning
det kan egrep , du sætter | mellem hvert udtryk :

cat "$fil" | \
  egrep 'Repair Operator Name|Panel Name|Total Repair Time' \
  >> samlet.txt



-- 
mvh Frank Damgaard  | 



References