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 > UNIX e avanzata per utenti esperti
.
google unix.com



UNIX e avanzata per utenti esperti Expert-to-Expert. Ulteriori avanzata UNIX, comandi UNIX, Linux, Sistemi Operativi, System Administration, Programmazione, Shell, Shell Script, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
ftp controllo ust Shell scripting e di programmazione 0 07-10-2008 03:30 AM
Ksh Verifica se stringa dispone di 2 caratteri e non contiene cifre? developncode UNIX for Dummies Domande & Risposte 1 04-08-2008 04:19 PM
EOF sotto controllo ramkrix Di programmazione ad alto livello 10 03-11-2008 01:43 AM
Controllo di PXE maestro @ Altiris SUN Solaris 5 05-25-2004 01:06 AM

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 07-17-2008
SAMZ SAMZ is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2008
Interventi: 18
Verifica di alcuni caratteri

Potrebbe aiutare chiunque con la seguente richiesta .. Ho un file nel seguente formato:

ID .... VALORE
A001 .... 100
B002 .... 200
A004 .... 300
B006 .... 100
A997 .... 200
B776 .... 400

E 'formato in una colonna, ma voglio verificare che il campo ID inizia sempre con con A o B e questo è il mio carattere logica finora:


Se Carattere 1 NON parità di A o B
allora
visualizzare messaggio di errore
altro
continuare a fare quello che vuoi
fi

non certo come chech che 1 carattere di ogni riga non è uguale A o B
habe cercato seguente senza alcun Joi

Se [! grep '^ A' $ file | |! grep '^ B' $ file] e poi
print "errore"
altro
print "funziona"
fi

ma il lavoro di cui sopra non credo che la logica, come la mia comprensione unix non grande, si prega di assistere.
  #2 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Località: Hyderabad, India
Interventi: 14
Prova questo:

/ (^ A) | (^ B) / (num + +)
END (if (num> 0); printf ( "% d istanze di A, B esiste \ n", num);)

È possibile modificare l'output nel modo desiderato.
  #3 (permalink)  
Old 07-17-2008
SAMZ SAMZ is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2008
Interventi: 18
non sembrano avere la precedenza al lavoro potrebbe spiegare ulteriormente si prega di
  #4 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Località: Hyderabad, India
Interventi: 14
Hi Samz. Mi hanno elaborato ulteriormente.
Ho messo il mio codice in uno script e corse con awk.

Codice:
awk -f <script name> <file>
Attualmente si stampa il numero di istanze di A e B
  #5 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Località: Hyderabad, India
Interventi: 14
BTW, si potrebbe anche bypassare questa messa in uno script.

Codice:
awk '/(^A)|(^B)/ {num++} END {if(num > 0);printf("%d instances of A,B exist\n", num);}' column
'colonna' è il file dove ho il formato specificato.
  #6 (permalink)  
Old 07-17-2008
SAMZ SAMZ is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2008
Interventi: 18
Citazione:
Originalmente inviato da phemanth24 View Post
BTW, si potrebbe anche bypassare questa messa in uno script.

Codice:
awk '/(^A)|(^B)/ {num++} END {if(num > 0);printf("%d instances of A,B exist\n", num);}' column
'colonna' è il file dove ho il formato specificato.
Ok sopra solo dirmi quante volte A o B in cui vi. I necessario per inviare un messaggio di errore se esiste un C o altrimenti l'ammenda di continuare il trattamento di file .. speranza che rende più senso
  #7 (permalink)  
Old 07-17-2008
Diabolist Diabolist is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2002
Interventi: 44
Il file di input:

Codice:
$ cat ttt
ID .... VALUE
-------------
A001 .... 100
C003 .... 800
B002 .... 200
corrupt
data
A004 .... 300
C003 .... 800
foo .... bar
Lo script:
Codice:
#!/bin/ksh

INPUT=ttt

{ while read LINE
do
  echo $LINE |egrep "^A|^B" > /dev/null 2>&1
  if [ $? -eq 0 ]
  then
    echo "Processing $LINE"
  else
    echo "Skipping $LINE"
  fi
done } < $INPUT
L'output:
Codice:
$ ./ttt.ksh
Skipping ID .... VALUE
Skipping -------------
Processing A001 .... 100
Skipping C003 .... 800
Processing B002 .... 200
Skipping corrupt
Skipping data
Processing A004 .... 300
Skipping C003 .... 800
Skipping foo .... bar
Si potrebbe fare una singola stringa di comandi utilizzando awk per la corrispondenza del pattern, ma non sono sicuro di come si desidera elaborare la linea si verifica una volta è bene ... questo modo può offrire la massima flessibilità.

Facci sapere se hai bisogno di qualcosa nello script spiegato.
Closed Thread

Segnalibri

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 è 08:45 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