The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Nem tudja beszúrni adatok crontab megh SUN Solaris 2 12-29-2008 08:36 AM
Nem tudja beszúrni adatok megh SUN Solaris 1 12-05-2008 12:20 AM
képtelen Beszúr adatokat. dat file. xls tud valaki segítsen nekem kreddy2003 Shell programozás és Scripting 1 05-28-2008 06:33 AM
segítsen nekem, hogy iktathatják adatok Babu @ héj A UNIX a dummies Kérdések és válaszok 10 10-24-2006 03:25 AM
sed szúrja adatok egy fájlt a másik? ctcuser Shell programozás és Scripting 4 05-03-2005 02:43 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 03-17-2009
aemunathan aemunathan is offline
Regisztrált felhasználó
  
 

Join Date: May 2008
Hozzászólások: 75
Hogyan lehet beszúrni adatokat befor néhány területen a sorban az adatok függvényében nyomon értékek sora

Szia

Kell tennem néhány dolgot, mint a "talál és helyezze előtt, hogy" a fájl, amely tartalmazza, sok rekordot. Ez egyértelmű a következő példa.

Az eredeti adatokat nyilván kell néhány dolog, mint ez

Kód:
60119827  RTMS_LOCATION_CDR    INSTANT_POSITION_QUERY    1236574686123083rtmssrv7      20090309102806279           441           442
           783           WEB       1568          GMLC919443259137    FAILURE6         1236574665595654lessrv1

esedékes, de némely rendszer hiba keletkezett a fájl már van egy hiányzó információnak, és úgy néz ki,


Kód:
60119827  RTMS_LOCATION_CDR    INSTANT_POSITION_QUERY    1236574686123083rtmssrv7      20090309102806279                         442
           783           WEB       1568          GMLC919443259137    FAILURE6         1236574665595654lessrv1

mindkettőről van 248 charaters hosszát. de a második rekord egy adat hiányzik, azaz 441

vennem kell beilleszteni 441 pontosan ebben a helyzetben, ha 442 kapható a következő adatokat.
Néhány dolog, mint az ügy kimutatások ...

Én leszek, eltérő értékek helyett 442 és a hozzájuk tartozó korábbi álláspontját adatok

How to go about this ... akármi egy segítsen nekem ki ...
Am miután sok hiba fájlokat, például ezt kell kezelni, ezért tehetek ilyet feltölteni a DB és illessze be az adatok alapján az értékek a sorban a helyzetben azt mondtam előtt (442)

Segítsen!!
  #2 (permalink)  
Old 03-17-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderátor
  
 

Join Date: Feb 2005
Helyszín: Boston, MA
Hozzászólások: 5.131
Idézet:
Originally Posted by aemunathan
Én leszek, eltérő értékek helyett 442 és a hozzájuk tartozó korábbi álláspontját adatok
Honnan tudod, hogy pontosan hol szúrni a hiányzó "adatok"?
Honnan tudod, hogy a hiányzó '441 'kellene a surround szóközök n / lapokon a bal oldalon, szóközök m / tabs a jobb?
  #3 (permalink)  
Old 03-17-2009
dariyoosh's Avatar
dariyoosh dariyoosh is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2009
Helyszín: Iran (Tehran)
Hozzászólások: 44
Hello there,

Ahogy mondták, akkor tényleg meg kell határoznunk a minta összetételét a fájl, beleértve a pontos számok a területen, ahol adatokat kellene módosítani kell, vagy legalább egy csoportja különleges értékek, amelyek szerint a forgatókönyvet kell keresni a fájlt és a hozzá hogy mi hiányzik.

Csak így Ön az első ötlet, ha a megadott értékek 441 és 442, akkor a következő KornShell szkript fogja végezni a munkát


Kód:
#!/bin/ksh

RESULT=""

while read LINE
do
    for ITERATOR in $LINE
    do
        if [[ $ITERATOR = "442"  ]]
        then
            RESULT="$RESULT 441 $ITERATOR"
        else
            RESULT="$RESULT $ITERATOR"
        fi
    done
    RESULT="$RESULT\n"
done < $1

print "$RESULT" > $1

Tehát, ha van néhány érték, akkor meg azokat a for ciklus.

Mégis, ez csak akkor megy, ha a határolók a fájlban vannak az alapértelmezett értékek IFS vagyis \ n \ t és a "".

Üdvözlettel,
  #4 (permalink)  
Old 03-18-2009
aemunathan aemunathan is offline
Regisztrált felhasználó
  
 

Join Date: May 2008
Hozzászólások: 75
Szia
ahol i megemlítendő a fájl nevét olvasni a sorok ... az ur forgatókönyvet.
  #5 (permalink)  
Old 03-18-2009
dariyoosh's Avatar
dariyoosh dariyoosh is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2009
Helyszín: Iran (Tehran)
Hozzászólások: 44
Idézet:
Originally Posted by aemunathan View Post
Szia
ahol i megemlítendő a fájl nevét olvasni a sorok ... az ur forgatókönyvet.
Nyilvánvalóan a parancssorban, például, ha a szkript fájl neve myscript.ksh, és a fájl neve myfile írsz:

$. / Myscript.ksh myfile
  #6 (permalink)  
Old 03-18-2009
aemunathan aemunathan is offline
Regisztrált felhasználó
  
 

Join Date: May 2008
Hozzászólások: 75
Szia

Munkacsoportjai de van átszervezés az adatok távolságtól.

A meglévő adatok pozíciók ne zavarják, és a karakterek száma 248 fenn kell tartani az eredményt is

Nem lesz üres helyeket végén minden sor, és az adatok között is. Az üres tér indiactes nincs adat, hogy a területen.

Valójában vannak olyan mezők nevét, amely a jelentések generálása, ha ez a mező nem áll rendelkezésre a jelentés nem lesz üres hely kell említenem, hogy.

Én fenn kell tartani a hossza 248 karakter. Mivel ez a fájl fogja megkapni a formázás különböző formátumban másik szerverre. Így adatokat kell ép.

kell lennie 11 üres helyek után a timestamp: 20090309102806279
aztán vennem kell szúrni a 441 ha 442 van jelen.
  #7 (permalink)  
Old 03-18-2009
Goldorakk's Avatar
Goldorakk Goldorakk is offline
Regisztrált felhasználó
  
 

Join Date: Feb 2009
Helyszín: Franciaország
Hozzászólások: 43
Nagyon nehéz a shell script manipulálni összhangban a terek ... Próbáld ki ezt a kódot, és dob rajta, mint:. / Myscript bemenet kimenet

Tegyük fel, hogy 441/442 pozíciók értéke 116 és 130.
Ha néhány sor tartalmaz egy # karakterrel, változtassa meg a forgatókönyvet egy másik nem használt karaktert.


Kód:
#!/bin/ksh

POS1=116 ; VAL1=441
POS2=130 ; VAL2=442

VAL_LEN=3

XPOS1=$((POS1 + $VAL_LEN - 1))
XPOS2=$((POS2 + $VAL_LEN - 1))

echo POS1=$POS1,XPOS1=$XPOS1
echo POS2=$POS2,XPOS2=$XPOS2

infile=$1
outfile=$2

NBL=$(wc -l $infile)
NBC=0

while [ $NBC -lt $NBL ]
do
        (( NBC = NBC + 1 ))

        xval1=$(head -$NBC $infile | tail -1 | cut -b$POS1-$XPOS1)
        xval2=$(head -$NBC $infile | tail -1 | cut -b$POS2-$XPOS2)

        if [ "$xval2" = "$VAL2" ]
        then
                if [ "$xval1" = "$VAL1" ]
                then
                        head -$NBC $infile | tail -1 >> $outfile
                else
                        # Must replace with $VAL1

                        echo "Must replace on line "$NBC

                        k1=$(head -$NBC $infile | tail -1 | sed 's/ /#/g')
                        (( ZPOS1 = POS1 - 1 ))
                        k2=$(echo $k1 | cut -b1-$ZPOS1)
                        (( ZPOS1 = XPOS1 + 1 ))
                        k3=$(echo $k1 | cut -b$ZPOS1-)
                        
                        echo "${k2}${VAL1}${k3}" | sed 's/#/ /g' >> $outfile
                fi
        else
                head -$NBC $infile | tail -1 >> $outfile
        fi
done

Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 11:43 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0