The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
SSH problemi ysk UNIX e avanzata per utenti esperti 1 07-19-2007 05:16 AM
Problemi di AIX e SAN. fjgonzalez AIX 4 07-18-2007 05:15 PM
Problemi con Ultimo By_Jam UNIX e avanzata per utenti esperti 3 09-29-2006 03:12 AM
Pochi problemi vivekshankar UNIX for Dummies Domande & Risposte 3 05-21-2005 12:26 PM
'make' problemi (compliation problemi?) xyyz UNIX e avanzata per utenti esperti 5 11-05-2001 10:47 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 Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-28-2008
scorpio scorpio is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 41
Problemi con il taglio

Ciao a tutti,


0680046755000011 3040249 3005930 60180GPRS4Samsung_SGH_Z500


Questo è il formato del mio file di log e dei parametri per il file di log sono come

• 10 caratteri prima: MSISDN
• 6 prossima caratteri: ore
• 18 caratteri prossimo: ID SA Fonte
• 18 caratteri prossimo: ID SA Destinazione


Ho 11 spazi bianchi tra il mio primo e secondo colums.I necessità di ridurre fitst 10 caratteri prossimi 6 caratteri e il prossimo 18 caratteri (compresi spazi bianchi). e ho cercato nel mio codice seguente

MSISDN \u003d `echo $ dati | cut-c1-10»
ORE \u003d `echo $ dati | cut-c11-16»
ID_SA_SOURCE \u003d `echo $ dati | cut-c17-35»
ID_SA_DEST \u003d `echo $ dati | cut-C36-54»


Becos di spazi bianchi, ma non è propriamente il taglio .. uno può suggerire alternative

Thnks
  #2 (permalink)  
Old 04-28-2008
namishtiwari namishtiwari is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Aug 2007
Località: Bangalore
Interventi: 377
Citazione:
Originalmente inviato da scorpio View Post
Ciao a tutti,


0680046755000011 3040249 3005930 60180GPRS4Samsung_SGH_Z500


Questo è il formato del mio file di log e dei parametri per il file di log sono come

• 10 caratteri prima: MSISDN
• 6 prossima caratteri: ore
• 18 caratteri prossimo: ID SA Fonte
• 18 caratteri prossimo: ID SA Destinazione


Ho 11 spazi bianchi tra il mio primo e secondo colums.I necessità di ridurre fitst 10 caratteri prossimi 6 caratteri e il prossimo 18 caratteri (compresi spazi bianchi). e ho cercato nel mio codice seguente

MSISDN \u003d `echo $ dati | cut-c1-10»
ORE \u003d `echo $ dati | cut-c11-16»
ID_SA_SOURCE \u003d `echo $ dati | cut-c17-35»
ID_SA_DEST \u003d `echo $ dati | cut-C36-54»


Becos di spazi bianchi, ma non è propriamente il taglio .. uno può suggerire alternative

Thnks
Prima di ridurre gli spazi tra i file di log dei dati con il comando tr
Codice:
HOUR=`echo $data | tr -s " " |cut -c11-16`
dare una prova di questo.
  #3 (permalink)  
Old 04-28-2008
scorpio scorpio is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 41
Salve
Grazie per la risposta

Ma i cant trim spazi bianchi dal mio file di log. Ho bisogno di prendere anche ..
Becos parametri sono fissati come
• 10 caratteri prima: MSISDN
• 6 prossima caratteri: ore
• 18 caratteri prossimo: ID SA Fonte
• 18 caratteri prossimo: ID SA Destinazione
Ciò include i caratteri spazi bianchi anche
  #4 (permalink)  
Old 04-28-2008
namishtiwari namishtiwari is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Aug 2007
Località: Bangalore
Interventi: 377
Citazione:
Originalmente inviato da scorpio View Post
Salve
Grazie per la risposta

Ma i cant trim spazi bianchi dal mio file di log. Ho bisogno di prendere anche ..
Becos parametri sono fissati come
• 10 caratteri prima: MSISDN
• 6 prossima caratteri: ore
• 18 caratteri prossimo: ID SA Fonte
• 18 caratteri prossimo: ID SA Destinazione
Ciò include i caratteri spazi bianchi anche
Codice:
id=`echo 0680046755000011 3040249 3005930 60180GPRS4Samsung_SGH_Z500 | tr -s " " |cut -c17-35`
output is --- 3040249 3005930 60
  #5 (permalink)  
Old 04-28-2008
scorpio scorpio is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 41
Salve,

In realtà il file di log è come 0608166896000001 nella mia prima colonna di 11 spazi bianchi e 3001339 nella mia seconda colonna (3001339) quindi 11 spazi bianchi e
3204235 nella mia terza coumn.
...

Ma durante la lettura linea per linea, utilizzando il codice seguente

leggere i dati, mentre
fare
echo $ dati dati
ID_SA_SOURCE \u003d `echo $ dati | cut-c17-35»
ID_SA_SOURCE echo $ ID_SA_SOURCE
fatto <TRACKING_LOGDIR $ / $ listdata


Io non sono sempre i 11 spazi in bianco "dati" variabile invece di i am ottenere solo uno spazio .. voglio 11whtespaces prima e 3001339 valore nel mio ID_SA_SOURCE variabile ....

Potete controllare questo pleasse
  #6 (permalink)  
Old 04-28-2008
epoca era is offline Forum Advisor  
Herder di Inutile Gatti (Su sabbatico)
  
 

Iscriviti Data: marzo 2008
Ubicazione: / ci / è / solo / bin / sh
Interventi: 3.652
Hai bisogno di citare correttamente le variabili quando si eco loro, altrimenti la shell trim spazi. I'd sconsigliare utilizzando eco a tutti, però.

Ma ecco come citare correttamente. Per essere un po 'sul sicuro, ho anche zap IFS; non credo che è strettamente necessario, ma è una tecnica che dovrebbe essere a conoscenza.

Codice:
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
Dopo aver di che il modo in cui, come di qualcosa come questo?

Codice:
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
  #7 (permalink)  
Old 04-28-2008
scorpio scorpio is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 41
Hi All,

Ho provato il primo dei suoi gruppi di lavoro Grazie a tutti
Closed Thread

Segnalibri

Tag
awk, awk trim, trim, trim awk

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 07:40 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0