The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Verwijder whitespaces tussen kommagescheiden velden uit bestand nitinbjoshi UNIX voor Dummies Questions & Answers 2 06-14-2008 09:14
Parse string in een XML-bestand met shell-script ayhanne Programmeren en Shell Scripting 46 01-09-2008 12:33
zoeken naar de inhoud in vele bestandsformaten en print dat bestand met shell script cdfd123 Programmeren en Shell Scripting 3 10-07-2007 11:17 PM
How to parse config variabelen uit externe bestand naar shell script pradsh Programmeren en Shell Scripting 2 07-09-2007 03:21 PM
Splitsing door komma's gescheiden waarden in een array tmarikle Programmeren en Shell Scripting 3 06-24-2005 06:50 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-18-2008
KrishnaSaran KrishnaSaran is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 12
Unix shell script te parsen van de inhoud van een komma-gescheiden bestand

Dear All,

Ik heb een komma-gescheiden bestand.
1. De eerste regel van het bestand (kop), moet er 4 komma (5 velden).
2. De laatste regel van het bestand moet 1 komma (2 velden).

Pls me helpen bij de controle op deze aandoening in een shell script.

En het aantal lijnen tussen de eerste lijn en de laatste regel van het bestand, moet overeenkomen met het laatste veld van de eerste en de laatste regel.

Dat is het laatste gebied van de eerste en de laatste regel wil hebben een nummer, dat moet overeenkomen met (nummer van de regel in het bestand) -2.

Pls help me met dit.


Voorbeeld dossier: QDB_2008.txt

1.1,20070427151500,99567,99669,0009
00001,20070427,00567,6012345671,2081, ik
00002,20070427,00568,6012345672,2054, ik
00003,20070427,00569,6012345673,2063, ik
00004,20070427,00570,6012345674,2081, D
00005,20070427,00571,6012345675,2054, D
00006,20070427,00572,6012345676,2063, D
00007,20070427,00573,6012345677,2081, U
00008,20070427,00574,6012345678,2054, U
00009,20070427,00575,6012345679,2063, U
101.1.0,0009 #

Groeten,
Krishna
  #2 (permalink)  
Old 06-18-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652

Code:
awk -F, '
NR==1 { expect=$NF; fields=NF; last=0 }
NF != fields { last=NR;
  if (NR != 2) print NR ": wrong number of fields: " $0;
  if ($NF != expect) print NR ": last field value not the same as on first line"
  if ($NF != NR-2) print NR ": last field not equal to line count minus two"
  if ($NF != expect) print NR ": line count from first line not identical"
}
last > 0 && NR > last { print NR ": wrong number of fields: " $0 }' QDB_2008.txt

Iets verzwaren, maar hopelijk tenminste je begon.
  #3 (permalink)  
Old 06-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: december 2007
Locatie: Home 17-time wereld kampioen Boston Celtics
Berichten: 1311
Wink Niet zo elegant, maar een andere manier van benaderen van de zaak


Code:
> cat chk_valid 
#! /bin/bash
#
# script to check on file conditions

ifile="QDB_2008.txt"

line_1=$(head -1 $ifile)
line_lst=$(tail -1 $ifile)
line_cnt=$(cat $ifile | wc -l)
detl_cnt=$((line_cnt-2))

line_1_val=$(echo $line_1 | cut -d"," -f5)
line_lst_val=$(echo $line_lst | cut -d"," -f2 | cut -d"#" -f1)

if [ "$line_1_val" -ne "$line_lst_val" ]
   then
   echo "Error - header & footer line counts differ"
fi

if [ "$detl_cnt" -ne "$line_1_val" ]
   then
   echo "Error - # detail lines does not match expected counts"
fi

  #4 (permalink)  
Old 06-19-2008
KrishnaSaran KrishnaSaran is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 12
Hoi,

De bovenstaande code werkt prima.
Ik wil dat het script na toevoeging newline karakter aan het einde van het bestand.

Pls laat me weten hoe append een newline karakter aan het einde van het bestand, als het niet bestaat.

Groeten,
Krishna
  #5 (permalink)  
Old 06-19-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.326

Code:
awk 1 file

Groeten
  #6 (permalink)  
Old 06-19-2008
ripat ripat is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Oct 2006
Locatie: België
Posts: 438
... of

Code:
$ echo "" >> file

  #7 (permalink)  
Old 06-19-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.326
Citaat:
Oorspronkelijk geplaatst door ripat View Post
... of

Code:
$ echo "" >> file
Dit voegt een nieuwe regel altijd aan het einde van een bestand, terwijl de OP wil append een newline karakter aan het einde van het bestand, alleen als het niet bestaat.

Groeten
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 08:41.


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