Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Sziasztok, van egy szövegfájlom, abban szeretném azt megcsinálni, hogy soronként haladva átformázzam. (A TAB nincs igy kiirva benne, csak hogy tudjuk hogy ott van elválasztó karakter.)

    "Wietmarschen"TAB"Lotte"
    "Bissendorf"TAB"Gohfeld (Übergang A 30/B 61)"

    És ezt kéne kapjam:

    Wietmarschen,Lotte, , , , ,
    Bissendorf,Gohfeld# (Uebergang A 30/B 61), , , , ,

    Tehát a feladat, " jelek eltávolítása, TAB helyére vessző, Ü betűből Ue-t az ä betűből ae-t az első space elé egy #-et és a végére , , , , , (vessző space vessző space... :)
    Valami awk-t emlegettek itt de ahhoz nem nagyon értek. Ha valakinek lenne ráérős ideje és megcsinálná nekem akkor hálás lennék.
    Elég lenne egy parancssoros valami is ami beolvassa a txt-t megformázza és kiírja egy másikba.
    Köszi.
    (Milkacsoki sörfizetség? :) )

    #! /bin/bash

    function do_field
    {
    tmp=${1//\"/}
    tmp=${tmp//Ü/Ue}
    tmp=${tmp//ä/ae}
    tmp=${tmp/ /# }
    echo $tmp
    }

    IFS=$'\t'
    while read a b
    do
    a=$(do_field "$a")
    b=$(do_field "$b")
    echo "$a,$b, , , , ,"
    done

    MOD: ez egy "szűrő" vagyis standard inputról olvas, outputra ír. Tehát valahogy imígyen kell használni:

    ./script.sh <in.txt
    Wietmarschen,Lotte, , , , ,
    Bissendorf,Gohfeld# (Uebergang A 30/B 61), , , , ,

Új hozzászólás Aktív témák