🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.os.linux.newbie
6 messages
6 total messages Started by MaGorEc Thu, 13 Aug 2009 11:27
Dodawanie ciągu znaków na końcu każdej linii pliku.
#138402
Author: MaGorEc
Date: Thu, 13 Aug 2009 11:27
16 lines
1571 bytes
Witam
Mam problem. Musiałem wkleić do html-a sporo tekstu z pliku tekstowego.
Problem w tym, że na stronie miało to być prezentowane w formie
wypunktowanej listy. Na początku każdej linii musiałem dodać znacznik
<ol> a na końcu </ol>.

Próbowałem różnymi narzędziami i jakoś mi nie szło. Jedyny sensowny trop
na jaki wpadłem to vi. Domyślam się, że można użyć tu awk a może i sed
ale niestety nie mogłem przebić się przez manuala.

Problem został wprawdzie rozwiązany za pomocą arkusza kalkulacyjnego ale
ciekawi mnie jak mogłoby to zostać rozwiązane w bash i/lub z użyciem
narzędzi tekstowych.

Pozdrawiam
Maciek
Re: Dodawanie ciągu znaków na końcu każdej linii pliku.
#138403
Author: pseudo
Date: Thu, 13 Aug 2009 12:52
16 lines
1633 bytes
MaGorEc pisze:
> Witam
> Mam problem. Musiałem wkleić do html-a sporo tekstu z pliku tekstowego.
> Problem w tym, że na stronie miało to być prezentowane w formie
> wypunktowanej listy. Na początku każdej linii musiałem dodać znacznik
> <ol> a na końcu </ol>.
> 
> Próbowałem różnymi narzędziami i jakoś mi nie szło. Jedyny sensowny trop
> na jaki wpadłem to vi. Domyślam się, że można użyć tu awk a może i sed
> ale niestety nie mogłem przebić się przez manuala.

Może coś takiego:

sed -e 's:.*:<ol>\0</ol>:'

by zadziałało?
Re: Dodawanie ciągu znaków na końcu każdej linii pliku.
#138404
Author: MaGorEc
Date: Thu, 13 Aug 2009 15:37
20 lines
1805 bytes
pseudo pisze:
> MaGorEc pisze:
>> Witam
>> Mam problem. Musiałem wkleić do html-a sporo tekstu z pliku tekstowego.
>> Problem w tym, że na stronie miało to być prezentowane w formie
>> wypunktowanej listy. Na początku każdej linii musiałem dodać znacznik
>> <ol> a na końcu </ol>.
>>
>> Próbowałem różnymi narzędziami i jakoś mi nie szło. Jedyny sensowny trop
>> na jaki wpadłem to vi. Domyślam się, że można użyć tu awk a może i sed
>> ale niestety nie mogłem przebić się przez manuala.
> 
> Może coś takiego:
> 
> sed -e 's:.*:<ol>\0</ol>:'
> 
> by zadziałało?

Nie zadziałało. O ile dobrze zastosowałem. Po tym ciągu poleceń podałem
nazwę pliku. Tak miało być?
Re: Dodawanie ciągu znaków na końcu każdej linii pliku.
#138405
Author: Piotr Hosowicz
Date: Thu, 13 Aug 2009 17:12
27 lines
2091 bytes
MaGorEc wrote:
> pseudo pisze:
>> MaGorEc pisze:
>>> Witam
>>> Mam problem. Musiałem wkleić do html-a sporo tekstu z pliku tekstowego.
>>> Problem w tym, że na stronie miało to być prezentowane w formie
>>> wypunktowanej listy. Na początku każdej linii musiałem dodać znacznik
>>> <ol> a na końcu </ol>.
>>>
>>> Próbowałem różnymi narzędziami i jakoś mi nie szło. Jedyny sensowny trop
>>> na jaki wpadłem to vi. Domyślam się, że można użyć tu awk a może i sed
>>> ale niestety nie mogłem przebić się przez manuala.
>> Może coś takiego:
>>
>> sed -e 's:.*:<ol>\0</ol>:'
>>
>> by zadziałało?
> 
> Nie zadziałało. O ile dobrze zastosowałem. Po tym ciągu poleceń podałem
> nazwę pliku. Tak miało być?

cat plik.txt | sed -e 's:.*:<ol>\0</ol>:'

-- 
Z cyklu "Uroki demokracji", czyli pytania i odpowiedzi w teledurniejach:
- Ile kół ma trójkołowiec?
- Dwa.
Re: Dodawanie ciągu znaków na końcu każdej linii pliku.
#138406
Author: Rafał Maszkowski
Date: Thu, 13 Aug 2009 19:59
35 lines
2336 bytes
On Thu, 13 Aug 2009 13:27:56 +0200 MaGorEc <mtgorec#tnij#@interia.pl> wrote:
> Mam problem. Musiałem wkleić do html-a sporo tekstu z pliku tekstowego.
> Problem w tym, że na stronie miało to być prezentowane w formie
> wypunktowanej listy. Na początku każdej linii musiałem dodać znacznik
> <ol> a na końcu </ol>.
> Próbowałem różnymi narzędziami i jakoś mi nie szło. Jedyny sensowny trop
> na jaki wpadłem to vi. Domyślam się, że można użyć tu awk a może i sed
> ale niestety nie mogłem przebić się przez manuala.

Jeżeli na końcu tej listy jest pusta linia, to można przejść na początek
i napisać:

!}awk '{ print "<ol>", $0, "</ol>" }'

'!' oznacza wywołanie polecenia, '}' oznacza wzięcie jako danych
wejściowych dla niego tekstu do końca bieżącego akapitu (definiowanego
jako tekst między pustymi liniami), a dalej jest polecenie dodające
odpowiednie elementy. Zamiast awka można użyć też seda.

Inny sposób określenia obszaru: zaznaczamy koniec markerem b:

mb

przechodzimy na początek i:

!'bawk ...

- czyli uruchamiamy polecenie, które dostanie tekst od bieżącego
  położenia kursora do markera b ('b oznacza przejscia do markera b, tak
jak } oznacza przejście za koniec akapitu, a { - przed początek).

R.
-- 
Jeżeli upadnie cywilizacja zachodnia, to będzie szansa na odbudowę cywilizacji
      chrześcijańskiej. (dr Stanisław Krajski, Radio Maryja, 10 X 2001)
Re: Dodawanie ciągu znaków na końcu każdej linii pliku.
#138407
Author: MaGorEc
Date: Sat, 15 Aug 2009 20:02
10 lines
1216 bytes
Rafał Maszkowski pisze:

> 
> !}awk '{ print "<ol>", $0, "</ol>" }'
> 

Zadziałało. Wielkie dzięki. I oczywiście chodziło o znacznik <li> :-)

Pozdrawiam
Maciek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads