The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Come cambiare campo SEPERATOR onthetopo Shell scripting e di programmazione 2 05-11-2007 01:11 PM
Uso | SEPERATOR come entrare in firvin UNIX for Dummies Domande & Risposte 5 03-28-2006 12:23 PM
Comma SEPERATOR premar Shell scripting e di programmazione 6 02-17-2006 04:16 AM
Come posso usare una parola per SEPERATOR qrshat SUN Solaris 3 02-10-2006 07:08 AM
Awk Campo SEPERATOR Aiuto insania Shell scripting e di programmazione 3 11-11-2005 04:29 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 05-26-2009
pinnacle pinnacle is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 182
SUBSEP SEPERATOR problema con awk

Il codice seguente rimuove nuovo in linea con le virgolette doppie
Sono sostituisce il carattere di nuova riga con le virgolette doppie con 123.

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

Eccomi combinando 4a e 5a campo con "123" come SEPERATOR

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

Sostituzione Comma SEPERATOR e "123" con lo spazio.
Il problema qui è se i dati è "123", che sarà sostituito con uno spazio.
Voglio solo "123" SEPERATOR essere sostituita.


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

Ho provato utilizzando SUBSEP
Questo codice invece di usare il valore per SUBSEP "\ 034" il suo inserimento "SUBSEP"


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

e come gestire il cambiamento in questo codice


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

 

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 07:27 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0