Sida 1 av 1
grep -A 2 "Idag\|Igår" hjälp tack :) ....[LÖST]
Postat: 20 jan 2009, 20:09
av BadOmen
Jag har gjort så här grep -A 2 "Idag\|Igår" för att fånga tre rader, raden som innehåller Idag eller Igår plus två rader efter den raden.
Problemet är bara att lynx inte visar åäö utan det blir nåt specialtecken. Hur ska jag göra för att få å att vara valfritt tecken?
Jag vill helst ha ett grep kommando om det är möjligt.
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 20:12
av Konservburk
Punkt . betyder valfritt tecken.
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 20:26
av BadOmen
Konservburk skrev:Punkt . betyder valfritt tecken.
Det vill inte funka i alla fall. Igår ser ut så här Ig�r i terminalen och fastän jag skriver grep -A 2 "Ig.r" så hittas inte raden. Det blir som om det stod en punkt där i ordet verkar det som tyvärr.
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 20:38
av Konservburk
BadOmen skrev:Konservburk skrev:Punkt . betyder valfritt tecken.
Det vill inte funka i alla fall. Igår ser ut så här Ig�r i terminalen och fastän jag skriver grep -A 2 "Ig.r" så hittas inte raden. Det blir som om det stod en punkt där i ordet verkar det som tyvärr.
Du måste skriva \. för att få en riktig punk. Annars blir det ett valfritt tecken. Prova
echo abc | grep 'a.c' om du inte tror mig
Det kanske är fler än ett tecken? Försök med punkt-punkt .. (eller .* om du vill ha godtyckligt antal valfria tecken).
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 21:14
av BadOmen
Konservburk skrev:BadOmen skrev:Konservburk skrev:Punkt . betyder valfritt tecken.
Det vill inte funka i alla fall. Igår ser ut så här Ig�r i terminalen och fastän jag skriver grep -A 2 "Ig.r" så hittas inte raden. Det blir som om det stod en punkt där i ordet verkar det som tyvärr.
Du måste skriva \. för att få en riktig punk. Annars blir det ett valfritt tecken. Prova
echo abc | grep 'a.c' om du inte tror mig
Det kanske är fler än ett tecken? Försök med punkt-punkt .. (eller .* om du vill ha godtyckligt antal valfria tecken).
Jag tror dig, men det funkar faktiskt inte för mig, inte
Ig\.r heller. Kan det vara att det inte är tillåtet att göra sånt i -A eller kan det vara så att det inte funkar på det här � tecknet, vade det nu är för ett tecken?

Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 21:34
av Konservburk
BadOmen skrev:Jag tror dig, men det funkar faktiskt inte för mig, inte Ig\.r heller.
Men \. är om du faktiskt vill ha en punkt och inte ett valfritt tecken, så det borde ju inte heller funka i det här fallet.
BadOmen skrev:Kan det vara att det inte är tillåtet att göra sånt i -A
Nej, det är tillåtet även med -A.
BadOmen skrev:eller kan det vara så att det inte funkar på det här � tecknet, vade det nu är för ett tecken?

Det är möjligt att ubuntus
grep inte riktigt kan hantera 8-bitstecken med . som den ska.
Du kan använda
iconv för att göra om "det där" tecknet till ett å igen:
Kod: Markera allt
... | iconv -f iso-8859-1 -t utf-8 | grep igår
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 21:46
av BadOmen
Konservburk skrev:BadOmen skrev:Konservburk skrev:Punkt . betyder valfritt tecken.
Det vill inte funka i alla fall. Igår ser ut så här Ig�r i terminalen och fastän jag skriver grep -A 2 "Ig.r" så hittas inte raden. Det blir som om det stod en punkt där i ordet verkar det som tyvärr.
Du måste skriva \. för att få en riktig punk. Annars blir det ett valfritt tecken. Prova
echo abc | grep 'a.c' om du inte tror mig
Det kanske är fler än ett tecken? Försök med punkt-punkt .. (eller .* om du vill ha godtyckligt antal valfria tecken).
Om du vill testa det jag gör så kan du instalera Lynx och köra det här(jag har testat att söka tillbehör här för det finns ingen Igår):
Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" | grep -v "thumb" | grep -A 2 "tillbeh\.r" | head -n 20 | cat > blocket.txt
cat ~/blocket.txt
Den här koden funkar bra förutom att det inte visar Idag och Igår, vilket egentligen är gansk oviktigt men jag stör mig lite på det...
Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" | grep -v "thumb" | grep -A 2 [0-9]:[0-9] | head -n 20 | cat > blocket.txt
cat ~/blocket.txt
Om jag låter less ta hand om utskrifter av hemsida så byts åäö ut enligt följande: å = <F5> ä = <F4> ö = <F6> om det kan vara nån ledtråd

Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 21:58
av Konservburk
BadOmen skrev:Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" | grep -v "thumb" | grep -A 2 "tillbeh\.r" | head -n 20 | cat > blocket.txt
cat ~/blocket.txt
Använd iconv som jag föreslog i förra inlägget så ska du se att det går bättre...
Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" |
grep -v "thumb" |
iconv -f iso-8859-1 -t utf-8 |
grep -A 2 "tillbehör"
Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 22:01
av BadOmen
Konservburk skrev:BadOmen skrev:Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" | grep -v "thumb" | grep -A 2 "tillbeh\.r" | head -n 20 | cat > blocket.txt
cat ~/blocket.txt
Använd iconv som jag föreslog i förra inlägget så ska du se att det går bättre...
Kod: Markera allt
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" |
grep -v "thumb" |
iconv -f iso-8859-1 -t utf-8 |
grep -A 2 "tillbehör"
Oj jag missade helt det inlägget... Ops. Jag ska ta och testa det sen tack ska du ha

Re: grep -A 2 "Idag\|Igår" hjälp tack :)
Postat: 20 jan 2009, 22:18
av BadOmen
| iconv -f iso-8859-1 -t utf-8 | funkade perfekt! Fattar inte hur jag hade lyckats missa det inlägget
Tack än en gång
