The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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
Fjern whitespaces mellom kommadelte felt fra fil nitinbjoshi UNIX for Dummies Spørsmål og svar 2 06-14-2008 09:14
Parse en streng i XML-filen med shell script ayhanne Shell programmering og Skripting 46 01-09-2008 12:33
søke etter innholdet i mange fil og skrive ut filen bruker shell script cdfd123 Shell programmering og Skripting 3 10-07-2007 11:17
Hvordan analysere config variabler fra ekstern fil til shell script pradsh Shell programmering og Skripting 2 07-09-2007 03:21
Splitting kommadelte verdier inn i en matrise tmarikle Shell programmering og Skripting 3 06-24-2005 06:50

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-18-2008
KrishnaSaran KrishnaSaran is offline
Registrert bruker
  
 

Bli Dato: juni 2008
Innlegg: 12
Unix shell script til å analysere innholdet i kommaseparert fil

Dear all,

Jeg har en kommaseparert fil.
1. Den første linjen i filen (overskriften) skal ha 4 komma (5 felt).
2. Den siste linjen i filen skal ha 1 komma (2 felt).

Pls hjelpe meg i å sjekke denne tilstanden i et shell script.

Og antall linjer mellom den første linjen og siste linje av filen, bør samsvare med det siste feltet i den første og siste linje.

Det vil si at det siste feltet på første og siste linje wil har et nummer, skal som samsvarer med (antall linje i filen) -2.

Pls hjelpe meg med dette.


Eksempel fil: QDB_2008.txt

1.1,20070427151500,99567,99669,0009
00001,20070427,00567,6012345671,2081, jeg
00002,20070427,00568,6012345672,2054, jeg
00003,20070427,00569,6012345673,2063, jeg
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 #

Hilsen,
Krishna
  #2 (permalink)  
Old 06-18-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 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
Litt uhåndterlig, men bør forhåpentligvis minst komme i gang.
  #3 (permalink)  
Old 06-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Bli Dato: desember 2007
Sted: Hjemme i 17-tiden verdensmesteren Boston Celtics
Innlegg: 1311
Wink Ikke så elegant, men en annen måte å tilnærme seg saken

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
Registrert bruker
  
 

Bli Dato: juni 2008
Innlegg: 12
Hei,

Ovennevnte koden fungerer fint.
Jeg vil kjøre skriptet etter tilføyer newline tegnet på slutten av filen.

Pls utleie meg vite hvor å føye til et newline tegn på slutten av filen, hvis den ikke eksisterer.

Hilsen,
Krishna
  #5 (permalink)  
Old 06-19-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4322
Code:
awk 1 file
Hilsen
  #6 (permalink)  
Old 06-19-2008
ripat ripat is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2006
Bosted: Belgia
Innlegg: 438
... eller
Code:
$ echo "" >> file
  #7 (permalink)  
Old 06-19-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4322
Sitat:
Originally Posted by ripat View Post
... eller
Code:
$ echo "" >> file
Dette alltid føye en ny linje på slutten av en fil mens OP ønsker å føye til et newline tegn på slutten av filen, hvis den ikke eksisterer.

Hilsen
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 03:39.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0