![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| SSH problemer | ysk | UNIX for Advanced & ekspertbrukere | 1 | 07-19-2007 06:16 |
| Problemer AIX og SAN. | fjgonzalez | AIX | 4 | 07-18-2007 06:15 |
| Problemer med Siste | By_Jam | UNIX for Advanced & ekspertbrukere | 3 | 09-29-2006 04:12 |
| Få problemer | vivekshankar | UNIX for Dummies Spørsmål og svar | 3 | 05-21-2005 01:26 |
| 'gjør' problemer (compliation problemer?) | xyyz | UNIX for Advanced & ekspertbrukere | 5 | 11-05-2001 10:47 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Problemer med kutt
Hei alle,
0680046755000011 3040249 3005930 60180GPRS4Samsung_SGH_Z500 Dette er formatet for min loggfilen og parametere for loggfilen er som • 10 første tegnene: MSISDN • 6 neste tegn: Hour • 18 neste tegn: ID SA Source • 18 neste tegn: ID SA Destinasjon Jeg har 11 whitespaces i mellom første og andre colums.I må kutte fitst 10 char neste 6 char og neste 18 tegn (inkludert mellomrom). og jeg prøvde follwing i min kode MSISDN \u003d `echo $ data | cut-c1-10` HOUR \u003d `echo $ data | cut-C11-16` ID_SA_SOURCE \u003d `echo $ data | cut-c17-35` ID_SA_DEST \u003d `echo $ data | cut-c36-54` Men becos av whitespaces er det ikke kutte riktig .. kan noen foreslå alternativer Thnks |
|
||||
|
Sitat:
Code:
HOUR=`echo $data | tr -s " " |cut -c11-16` gi en prøve til denne. |
|
||||
|
Hei
Takk for svar Men jeg skrånende klippe min whitespaces fra loggfiler. Jeg må ta det også .. becos parametere er satt som • 10 første tegnene: MSISDN • 6 neste tegn: Hour • 18 neste tegn: ID SA Source • 18 neste tegn: ID SA Destinasjon Dette tegn inkludert mellomrom også |
|
||||
|
Sitat:
Code:
id=`echo 0680046755000011 3040249 3005930 60180GPRS4Samsung_SGH_Z500 | tr -s " " |cut -c17-35` output is --- 3040249 3005930 60 |
|
||||
|
Hei,
Egentlig loggfilen som 0608166896000001 i mitt første kolonnen 11 whitespaces og 3001339 i mitt andre kolonnen (3001339) og deretter 11 whitespaces og 3204235 i mitt tredje coumn. ... Men mens du leser linje for linje bruke følgende kode mens du leser data gjøre ekkodata $ data ID_SA_SOURCE \u003d `echo $ data | cut-c17-35` echo ID_SA_SOURCE $ ID_SA_SOURCE Ferdig <$ TRACKING_LOGDIR / $ listdata Jeg er heller ikke den 11 mellomrom i "data"-variabelen i stedet for jeg får bare en plass .. jeg ønsker 11whtespaces først og 3001339 Verdien på min ID_SA_SOURCE variabel .... Kan du pleasse sjekk denne |
|
||||
|
Du må riktig Sitat variablene dine når du echo dem, ellers skallet vil klippe mellomrom. Jeg fraråder å bruke ekko i det hele tatt, skjønt. Men her ser du hvordan du Sitat riktig. For å være litt på den sikre siden jeg også zappe IFS; Jeg tror ikke det er strengt nødvendig her, men det er en teknikk som du bør være klar over. Code:
OLDIFS=$IFS IFS=' ' # just a newline, in single quotes while read data do MSISDN="`echo "$data" | cut -c1-10`" HOUR="`echo "$data" | cut -c11-16`" ID_SA_SOURCE="`echo "$data" | cut -c17-35`" ID_SA_DEST="`echo "$data" | cut -c36-54`" done < $TRACKING_LOGDIR/$listdata IFS=$OLDIFS Etter som dette er unnagjort, hvor om noe sånt? Code:
awk '{ OFS=":"; print substr($0, 1, 10), substr($0, 11, 16),
substr($0, 17, 35), substr($0, 17, 35) }' $TRACKING_LOGDIR/$listdata |
while IFS=: read MSISDN HOUR ID_SA_SOURCE ID_SA_DEST; do
echo "'$HOUR': All your '$ID_SA_SOURCE' are '$ID_SA_DEST' to '$MSISDN'"
done
|
![]() |
| Hugseliste |
| Tags |
| awk, awk trim, trim, trim awk |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|