All text på en rad? [LÖST]
All text på en rad? [LÖST]
Hur gör man för att få all text på en rad istället för på många rader? Jag vill att all text i en textfil ska ligga på en enda rad och inte uppdelat på många rader. Hur gör jag?
Senast redigerad av 1 ubot, redigerad totalt 27 gånger.
- Urban Anjar
- Inlägg: 7306
- Blev medlem: 05 nov 2006, 22:59
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Vickleby
- Kontakt:
Re: All text på en rad?
Kan du utveckla det lite. Skapar du textfilen i en editor eller i något program? Programspråk?ubot skrev:Hur gör man för att få all text på en rad istället för på många rader? Jag vill att all text i en textfil ska ligga på en enda rad och inte uppdelat på många rader. Hur gör jag?
Ubuntu från början: http://ubuntufranborjan.wordpress.com/
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Re: All text på en rad?
Tanken var att ta koden från en webbsida med curl och lägga all kod på en enda rad och sedan plocka ut titel-taggarna med grep/sed. I Terminalen alltså.Urban Anjar skrev:Kan du utveckla det lite. Skapar du textfilen i en editor eller i något program? Programspråk?ubot skrev:Hur gör man för att få all text på en rad istället för på många rader? Jag vill att all text i en textfil ska ligga på en enda rad och inte uppdelat på många rader. Hur gör jag?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Du kan t.ex. pipe:a det genom xargs. Funkar nog med sed också om du ändå tänker använda det. Och grep är förresten onödigt om du använder sed.
Re: All text på en rad?
xargs vad? Jag har testat med xargs echo, men det fungerade inte så bra. Hur gör xargs texten till en enda rad?Konservburk skrev:Du kan t.ex. pipe:a det genom xargs. Funkar nog med sed också om du ändå tänker använda det. Och grep är förresten onödigt om du använder sed.
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: All text på en rad?
Låt bli att skriva ut newline tecknen så är du hemma.
Det går utmärkt med echo. (Det gäller dock att hålla reda på vilken version av echo som körs)
Ibland fungerar detta
Det beror på skalet hellt enkelt.
Du har även tillgång till printf, oftast. Det beror lite på vilket språk du använder.
Det går utmärkt med echo. (Det gäller dock att hålla reda på vilken version av echo som körs)
Ibland fungerar detta
Kod: Markera allt
echo -n "hej"
Du har även tillgång till printf, oftast. Det beror lite på vilket språk du använder.
Re: All text på en rad?
|perl -pe 's/\n//g' kanske?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: All text på en rad?
Nja, alltså, jag tar ju texten från en textfil så jag väljer inte vad jag har att utgå ifrån. Jag har en text i en textfil där jag vill ha all text i en enda rad istället för på många rader.mcNisse skrev:Låt bli att skriva ut newline tecknen så är du hemma.
Det går utmärkt med echo. (Det gäller dock att hålla reda på vilken version av echo som körs)
Ibland fungerar dettaDet beror på skalet hellt enkelt.Kod: Markera allt
echo -n "hej"
Du har även tillgång till printf, oftast. Det beror lite på vilket språk du använder.
Re: All text på en rad?
Kod: Markera allt
cat fil | tr -d '\n'
Re: All text på en rad?
Jo, men när jag sedan tittar på koden i nano eller gedit så ligger den inte i en enda rad iaf. Jag har testat med ditt kommando, men utan framgång.gusse02 skrev:Kod: Markera allt
cat fil | tr -d '\n'
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Det är samma sak med alla dessa kommandon, oavsett om det är tr, sed, awk, perl, xargs eller något annat. De ändrar inte på orginalfilen. Du kan om du vill spara resultatet någonstans och sedan ersätta orginalfilen. Men ska du ändå bara skicka vidare via en pipeline så är det ganska onödigt.ubot skrev:Jo, men när jag sedan tittar på koden i nano eller gedit så ligger den inte i en enda rad iaf. Jag har testat med ditt kommando, men utan framgång.
Re: All text på en rad?
Men om jag har > filnamn.txt på slutet. Borde inte radändringarna följa med då, dvs bara en enda rad i textfilen som skapas?Konservburk skrev:Det är samma sak med alla dessa kommandon, oavsett om det är tr, sed, awk, perl, xargs eller något annat. De ändrar inte på orginalfilen. Du kan om du vill spara resultatet någonstans och sedan ersätta orginalfilen. Men ska du ändå bara skicka vidare via en pipeline så är det ganska onödigt.ubot skrev:Jo, men när jag sedan tittar på koden i nano eller gedit så ligger den inte i en enda rad iaf. Jag har testat med ditt kommando, men utan framgång.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Bara om du inte läser från filnamn.txt samtidigt.ubot skrev:Men om jag har > filnamn.txt på slutet. Borde inte radändringarna följa med då, dvs bara en enda rad i textfilen som skapas?
Det som alltid fungerar är att spara resultatet till en ny fil och först därefter ersätta den gamla...
Kod: Markera allt
ditt_kommando <filnamn.txt >filnamn.txt.tmp && mv -f filnamn.txt.tmp filnamn.txt
Re: All text på en rad?
Aha, omständigt! Jag ska göra ett försök så får vi se hur det går.Konservburk skrev:Bara om du inte läser från filnamn.txt samtidigt.ubot skrev:Men om jag har > filnamn.txt på slutet. Borde inte radändringarna följa med då, dvs bara en enda rad i textfilen som skapas?
Det som alltid fungerar är att spara resultatet till en ny fil och först därefter ersätta den gamla...
Kod: Markera allt
ditt_kommando <filnamn.txt >filnamn.txt.tmp && mv -f filnamn.txt.tmp filnamn.txt
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Det behövs som sagt inte om direkt kör allt genom en pipeline istället: curl ... | sed ... | osv ...ubot skrev:Aha, omständigt! Jag ska göra ett försök så får vi se hur det går.
Re: All text på en rad?
Nja, jag har testat curl ... | tr -d "\n" | grep ... > textfil.txt, men det såg inte ut att fungera. När jag öppnar textfilen i gedit eller nano så ligger texten inte på en enda rad. Hur ska jag skriva för att det ska fungera då isf?Konservburk skrev:Det behövs som sagt inte om direkt kör allt genom en pipeline istället: curl ... | sed ... | osv ...ubot skrev:Aha, omständigt! Jag ska göra ett försök så får vi se hur det går.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Det här funkar för mig:
Men jag förstår inte varför du vill mellanlagra det i en textfil?
Kod: Markera allt
curl -sL http://gnu.org | tr -d '\n' >textfil.txt
Re: All text på en rad?
Haha, nej, det vet inte jag heller. Det är bara en fix idé jag har fått efter massa trixande fram och tillbaka. Jag spolade textfilen och körde allt i en pipe och det gick ju lika bra det. Nu verkar allt funger iaf. Tack! Frågan är varför så många säger att sed/grep/awk inte är bra för att extrahera innehåll mellan html/xml-taggar? Vad är det som kan gå fel om man gör så som jag har gjort nu, dvs lägger hela koden på en enda rad och sedan klipper ut allt mellan vissa taggar?Konservburk skrev:Det här funkar för mig:
Men jag förstår inte varför du vill mellanlagra det i en textfil?Kod: Markera allt
curl -sL http://gnu.org | tr -d '\n' >textfil.txt
Re: All text på en rad? [LÖST]
Äh, det fungerar ändå inte som jag vill ha det. Varför fungerar inte det här:
Varför får jag inte titeln? Jag lägger hela koden på en rad med tr -d "\n" och sedan filtrerar jag med grep på enbart titel-taggarna? Varför går det inte? När jag testar med en sida på Aftonbladet så fungerar det, men inte på Expressen. Det här är ju inte tillförlitligt.
Kod: Markera allt
curl -Ls http://www.expressen.se/Nyheter/1.1722360/misstankte-helikopterpiloten-har-gripits | tr -d "\n" | grep -o "<title>.*</title>"
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: All text på en rad?
Problemet är att det kan finnas en massa specialfall som man lätt missar om man inte tänker på det ordentligt. Ingenting som inte går att lösa dock.ubot skrev:Frågan är varför så många säger att sed/grep/awk inte är bra för att extrahera innehåll mellan html/xml-taggar? Vad är det som kan gå fel om man gör så som jag har gjort nu, dvs lägger hela koden på en enda rad och sedan klipper ut allt mellan vissa taggar?
Vad händer om taggarna blandar stora och små bokstäver, olika för start- och sluttaggen?
<Html>...</htML>
Vad händer om det finns mellanrum i taggarna?
< html >...</html >
Vad händer om taggarna innehåller argument?
<html arg="hej">...</html>
Vad händer om sluttaggen saknas?
<html>...
Vad händer om det finns flera likadana taggpar på rad?
<html>...</html>...<html>...</html>
Vad händer om det finns flera likadana nästlade taggpar?
<html>...<html>...</html>...</html>
Det finns säkert ännu fler konstigheter man kan behöva se upp med.