Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: VOJ - 01.03.11 - klo:06.21

Otsikko: Rivien yhdistäminen RATKAISTU
Kirjoitti: VOJ - 01.03.11 - klo:06.21
Olen yrittänyt keksiä miten saisin aikaiseksi yksinkertaisen bash-skriptin, joka yhdistäisi rivin edelliseen riviin silloin kun rivi alkaa pienellä kirjaimella.

Taidot eivät vaan oikein riitä.

Vinkeistä olisi apua. Kiitos.
Otsikko: Vs: Rivien yhdistäminen
Kirjoitti: jekku - 01.03.11 - klo:08.21
Olen yrittänyt keksiä miten saisin aikaiseksi yksinkertaisen bash-skriptin, joka yhdistäisi rivin edelliseen riviin silloin kun rivi alkaa pienellä kirjaimella.

Taidot eivät vaan oikein riitä.

Vinkeistä olisi apua. Kiitos.

Onko se oltava puhdasta bash:ia?
Kai tuo onnistuu mutta jos hommalla kiire niin olisiko perl mitään ;)
Otsikko: Vs: Rivien yhdistäminen
Kirjoitti: VOJ - 01.03.11 - klo:09.45
Lainaus
Onko se oltava puhdasta bash:ia?
Kai tuo onnistuu mutta jos hommalla kiire niin olisiko perl mitään ;)

Aamusta taisi olla vielä aivot kohmeessa. Tarkoitin että olen tutkinut awkia ja sediä ko. tarkoitukseen. Täytynee alkaa tutustua perliin. Ei ole vaan ennen tullut käytettyä sitä. W-tyylillä olisin varmaan jo tehnyt sen Qbasicillä.
Otsikko: Vs: Rivien yhdistäminen
Kirjoitti: jekku - 01.03.11 - klo:11.11
Lainaus
Onko se oltava puhdasta bash:ia?
Kai tuo onnistuu mutta jos hommalla kiire niin olisiko perl mitään ;)

Aamusta taisi olla vielä aivot kohmeessa. Tarkoitin että olen tutkinut awkia ja sediä ko. tarkoitukseen. Täytynee alkaa tutustua perliin. Ei ole vaan ennen tullut käytettyä sitä. W-tyylillä olisin varmaan jo tehnyt sen Qbasicillä.

Olisko tuosta pohjaksi ja malliksi?

#!/usr/bin/perl -w
open(IN,$ARGV[0]);
while(<IN>)
{
  chomp();
  $alkukirjain=substr($_,0,1);
  if($alkukirjain eq uc($alkukirjain))
  {
    print "\n".$_;
  }
  else
  {
    print " ".$_."";
  }
}

Edit: Niinjoo, tuo $ARGV[0] on sitten ao. skriptille annettava tiedostonimi.
eli jos skripti on nimetty palikka.pl niin loitsu ./palikka tutkittava_file.txt

Ja luonnollisesti vain tekstifilet kelpaavat syötteeksi, ei mitään pakattuja ja/tai muita binäärijuttuja.
Otsikko: Vs: Rivien yhdistäminen
Kirjoitti: SuperOscar - 01.03.11 - klo:11.14
Pythonilla jotenkin näin... kömpelöä muttei nyt tule heti mieleen elegantimpaa ratkaisua.

Koodia: [Valitse]
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from sys import argv
from string import lowercase as pienaakkoset

pienaakkoset += 'åäö'

for arg in argv[1:]:
    edell = ''
    for rivi in open(arg, 'r'):
        if rivi[0] not in pienaakkoset:
            if edell != '':
                print(edell)
            edell = rivi.rstrip()
        else:
            edell += rivi.rstrip()
    if edell != '':
        print(edell)
Otsikko: Vs: Rivien yhdistäminen
Kirjoitti: VOJ - 01.03.11 - klo:12.07
Toimii. Kiitoksia.