Yritin luoda skriptin, jolla saan olemassaolevasta ubuntuguiden suomennoksesta ja vastaavasta englanninkielisestä versiosta rakennettua sed-skriptin, jonka avulla taas saan uusimman version päivitettyä hujauksessa suomenkieliseksi (saa nähdä tuleeko noita enää, vai kyllästyikö tekijä jo projektiin...). Käsin näiden muutosten toteuttaminen on liian hankalaa, joten tämä automatisointi olisi ihan mukavaa.
Lisäksi tässä oppii yhtä ja toista skriptauksesta ja varsinkin sedistä, joka on todella pätevä työkalu.
Kaikki muu sujuu hienosti, mutta seuraava ongelma minulla on:
Skriptin pitäisi lukea rivi samaan tahtiin ensin englanninkielisestä versiosta rivi ja vastaava rivi suomenkielisestä tiedostosta ja kirjoittaa nuo rivit peräkkäin kolmanteen tiedostoon.
En keksinyt tähän muuta kuin while-loopin jossa tämä hoidetaan rivinumeroa kasvattamalla ja käytetään head ja tail -ohjelmia.
Tämä on riittävän nopea ratkaisu minulle, mutta ongelmana on se, että jossain vaiheessa looppi hyppää yhden rivin yli tuossa englanninkielisessä tiedostossa! En ymmärrä.
Tässä tuo looppi ja pätkät sekä englanninkielistä tiedostoa että vastaavat rivit suomenkielisestä ja vielä tuo tuloste:
looppi:
i=1
lines=`wc -l "$infile1" | awk '{print $1}'`
echo "Total lines to go: $lines"
while [ $i -le $lines ]
do
head -n $i "$infile1" | tail -n 1
head -n $i "$infile2" | tail -n 1
if ! (( "$i" % 100 ))
then
echo "line $i" >&2
fi
let "i += 1"
done >> "$outfile"
englanninkielinen tiedosto, rivit 391-398:
sudo gnome-clipboard-daemon &
System -> Preferences -> Sessions
Sessions
Startup Programs Tab ->
Add
Startup Command:
gnome-clipboard-daemon
Order:
suomenkielinen tiedosto, rivit 391-398:
sudo gnome-clipboard-daemon &
Järjestelmä -> Asetukset -> Istunnot
Istunnot
Käynnistyvät ohjelmat-välilehti ->
Lisää
Käynnistyskomento:
gnome-clipboard-daemon
Järjestys:
Tällaisen tuloksen tuo skripti tuottaa:
...
System -> Preferences -> Sessions
Järjestelmä -> Asetukset -> Istunnot
Sessions
Istunnot
Startup Programs Tab ->
Käynnistyvät ohjelmat-välilehti ->
Lisää
Startup Command:
Käynnistyskomento:
gnome-clipboard-daemon
gnome-clipboard-daemon
...
Eli siis tuo Add-rivi tippuu pois. Joka kerta! Mitään muuta tiedostosta ei jää pois. Itse rivissä ei ole mitään outoa, sillä jos muutan lähdetiedostoja, niin sitten se on joku toinen rivi joka sieltä tippuu. Mutta aina vain yksi ja aina tuosta englanninkielisestä tiedostosta.
Nämä lähdetiedostotkin ovat jo valmiiksi muokattuja, esim. ylimääräiset rivinvaihdot ja html-tagit on karsittu pois, yms.
Jos joku näkee tässä jonkun pahan virheen, niin ilmoittakaa ihmeessä.
Tai jos tiedätte fiksumman tavan lukea tiedostoa riveittäin, niin olisin kiinnostunut kuulemaan moisesta.
Kokeilin myös korvata tuon head/tail -hässäkän sedillä (sed -n -e "$i p" "$infile1"), mutta se käyttäytyi aivan samalla tavalla, eli kyseessä on jokin outous tuossa itse silmukassa. Lisäksi vauhti hidastui aivan tolkuttomasti.
Yritin käyttää myös read:ia tiedoston lukemiseen, mutta se lukee vain ensimmäisen rivin yhä uudelleen, ellei se ole while-loopin testiosassa ja tuolloin en pysty tuota toista tiedostoa lukemaan samanaikaisesti samalla metodilla.
Mikko