The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Hur man ändra område SEPERATOR onthetopo Shell-programmering och Skript 2 05-11-2007 01:11
Använda | som SEPERATOR i går firvin UNIX for Dummies Frågor & Svar 5 03-28-2006 12:23
Comma SEPERATOR premar Shell-programmering och Skript 6 02-17-2006 04:16
hur kan jag använda ett ord för SEPERATOR qrshat Sun Solaris 3 02-10-2006 07:08
Awk Field SEPERATOR Hjälp insania Shell-programmering och Skript 3 11-11-2005 04:29

 
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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-26-2009
Pinnacle pinnacle is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 182
SUBSEP SEPERATOR problem med awk

Följande kod tar bort ny rad i citationstecken
Jag ersätter newline karaktär i citationstecken med 123.

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

Här är jag kombinerar 4 och 5 gäller med "123" som SEPERATOR

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

Byta kommaavgränsad och SEPERATOR "123" med utrymme.
Problemet här är om uppgifterna har "123" som också kommer att bytas ut mot rymden.
Jag vill bara "123" SEPERATOR som skall ersättas.


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

Jag försökte använda SUBSEP
Denna kod i stället för att använda värde för SUBSEP "\ 034" sin infoga "SUBSEP"


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

och hur man ska hantera denna förändring i detta nummer


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

 

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 08:27.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0