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
Hvordan endre feltet SEPERATOR onthetopo Shell programmering og Skripting 2 05-11-2007 01:11
Bruke | som SEPERATOR i delta firvin UNIX for Dummies Spørsmål og svar 5 03-28-2006 12:23
Kommadelt SEPERATOR premar Shell programmering og Skripting 6 02-17-2006 04:16
hvordan jeg kan bruke et ord for SEPERATOR qrshat Sun Solaris 3 02-10-2006 07:08
Awk Felt SEPERATOR Hjelp insania Shell programmering og Skripting 3 11-11-2005 04:29

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 05-26-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
SUBSEP SEPERATOR problem med awk

Følgende kode fjerner ny linje med doble anførselstegn
Jeg setter newline tegn med doble anførselstegn med 123.

Code:
intermediatenewline_remover () {
    typeset Infile=$1
    nawk -F"," '{ record = record $0
 if ( gsub( /"/, "&", record ) % 2 ) 
 {
     record = record "123"
     next
 }
    }
    { 
 print record
 record = ""
    }' Infile
}

Her er jeg kombinere 4., og 5. feltet med "123" som SEPERATOR

Code:
    nawk -F"|" '{print $2,$3,$4"123"$5}' OFS="|" file

Bytte kommadelt og SEPERATOR "123" med mellomrom.
Problemet her er at data er "123" som også vil bli erstattet med plass.
Jeg ønsker bare "123" SEPERATOR som skal erstattes.


Code:
    nawk -F"|" '{gsub(",", " ",$3);gsub("123", " ",$3);print}' OFS="|" file

Jeg prøvde å bruke SUBSEP
Denne koden i stedet for å bruke verdien for SUBSEP "\ 034" dens setter "SUBSEP"


Code:
intermediatenewline_remover () {
    typeset Infile=$1
    nawk -F"," '{ record = record $0
 if ( gsub( /"/, "&", record ) % 2 ) 
 {
     record = record "SUBSEP"
     next
 }
    }
    { 
 print record
 record = ""
    }' Infile
}

og hvordan man skal håndtere denne endringen i denne koden


Code:
    nawk -F"|" '{print $2,$3,$4"123"$5}' OFS="|" file
    nawk -F"|" '{gsub(",", " ",$3);gsub("123", " ",$3);print}' OFS="|" file

  #2 (permalink)  
Old 05-26-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5789
SUBSEP er et komma som standard, det er det \ 034 er. Bare bruk ","

Kan du ikke formatere output med printf (format-strengen, [verdi], ...);
  #3 (permalink)  
Old 05-26-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131
du bruker en SUBSEP som en string, Og ikke som en builtin variabel - løs den doble anførselstegn.
  #4 (permalink)  
Old 05-26-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by vgersh99 View Post
du bruker en SUBSEP som en string, Og ikke som en builtin variabel - løs den doble anførselstegn.

Takk Vgersh99.

Jim McNamara --
Sitat:
echo "," | od-bc
0000000 054 012
, \ N
0000002
Kommadelt oktal verdi er 054.
Noen måte subsep fungerer for nå.
Takk.
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 PÃ¥
Smilefjes er PÃ¥
[IMG] koden PÃ¥
HTML-koden Av
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle klokkeslett er GMT -4. NÃ¥ er klokken 05:37.


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