The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > UNIX for Advanced & Expert Gebruikers
.
google unix.com



UNIX for Advanced & Expert Gebruikers Expert-to-Expert. Hier geavanceerde UNIX-, UNIX-commando's, Linux, Operating Systems, System Administration, programmering, Shell, Shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
ftp controleren ust Programmeren en Shell Scripting 0 07-10-2008 03:30
Ksh gecontroleerd als string heeft 2 tekens en bevat geen cijfers? developncode UNIX voor Dummies Questions & Answers 1 04-08-2008 04:19 PM
EOF de controle op de hieronder ramkrix Hoog Niveau Programmering 10 03-11-2008 01:43
Controle voor PXE maestro @ Altiris SUN Solaris 5 05-25-2004 01:06

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-17-2008
SAMZ SAMZ is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 18
Controleren op bepaalde tekens

Kan iemand helpen met de volgende vraag .. Ik heb een bestand in de volgende notatie:

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

Het is in een kolom-formaat, maar ik wil om te controleren of het ID veld begint altijd met met en A of B karakter dit is mijn logica tot nu toe:


Als Character 1 niet gelijk A of B
dan
elkaar foutmelding
anders
voeren op het doen wat je wilt
fi

niet echt zeker hoe dat chech karakter 1 van elke regel niet gelijk is A of B
habe volgende geprobeerd met nee nee Joi

If [! grep '^ A "$ file | |! grep '^ B "$ bestand] vervolgens
print "fout"
anders
print "het werkt"
fi

maar het bovenstaande niet werkt Ik denk dat het logisch als mijn unix begrip niet geweldig, kunt helpen.
  #2 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Locatie: Hyderabad, India
Posts: 14
Probeer dit:

/ (^ A) | (^ B) / (num + +)
END (if (num> 0) printf ( "% d exemplaren van A, B bestaan \ n", num);)

U kunt de output van de manier waarop u wilt.
  #3 (permalink)  
Old 07-17-2008
SAMZ SAMZ is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 18
niet lijken te krijgen boven aan het werk kunt u uitleggen verder aub
  #4 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Locatie: Hyderabad, India
Posts: 14
Hi Samz. Ik moet verder uitgewerkt.
Ik heb mijn code in een script en liep het met awk.


Code:
awk -f <script name> <file>

Bezig met het afdrukken van het aantal gevallen van A en B
  #5 (permalink)  
Old 07-17-2008
phemanth24 phemanth24 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Locatie: Hyderabad, India
Posts: 14
BTW, je kan ook rondweg om dit in een script.


Code:
awk '/(^A)|(^B)/ {num++} END {if(num > 0);printf("%d instances of A,B exist\n", num);}' column

'kolom' is het bestand waar ik het formaat dat u hebt opgegeven.
  #6 (permalink)  
Old 07-17-2008
SAMZ SAMZ is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 18
Citaat:
Oorspronkelijk geplaatst door phemanth24 View Post
BTW, je kan ook rondweg om dit in een script.


Code:
awk '/(^A)|(^B)/ {num++} END {if(num > 0);printf("%d instances of A,B exist\n", num);}' column

'kolom' is het bestand waar ik het formaat dat u hebt opgegeven.
Ok het bovenstaande alleen mij vertellen hoeveel keer A of B waar in. Ik nodig ze te verzenden een foutmelding als een C-bestaan of anders haar geldboete te blijven verwerken bestand .. hoop dat het zinvoller
  #7 (permalink)  
Old 07-17-2008
Diabolist Diabolist is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2002
Posts: 44
De input-bestand:


Code:
$ cat ttt
ID .... VALUE
-------------
A001 .... 100
C003 .... 800
B002 .... 200
corrupt
data
A004 .... 300
C003 .... 800
foo .... bar

Het script:

Code:
#!/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

De output:

Code:
$ ./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

Je kon doen een string met behulp van commando awk voor de koppeling, maar ik ben niet zeker hoe u wilt verwerken de lijn zodra u controleren of het goed ... dus dit is wellicht de meeste flexibiliteit.

Laat het ons weten als je iets nodig hebt in het script uitgelegd.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:52 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0