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
Per rimuovere il carattere di nuova riga shihabvk UNIX e avanzata per utenti esperti 7 06-18-2009 08:44 AM
sed per eliminare il carattere [ ' manishabh Shell scripting e di programmazione 2 08-30-2008 12:28 AM
Come rimuovere il carattere di estraneità vsmurali UNIX for Dummies Domande & Risposte 7 03-18-2008 12:57 PM
Cercando di rimuovere il carattere unico di una linea Iz3k34l UNIX for Dummies Domande & Risposte 5 07-07-2007 02:29 PM
Rimuovere l'ultimo carattere della linea danhodges99 Shell scripting e di programmazione 4 05-21-2003 10:30 AM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 10-06-2008
VPREATR VPREATR is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2008
Interventi: 3
Necessità di rimuovere primo carattere di ogni terza linea (o rivista nawk).

Ecco i dati I'm a partire (ad esempio la produzione combinata di due query, dimensione del file: 284k)

Codice:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||5555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2
||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y|555-55-1111|SMITH|JOHN|||12
/23/1960|2|WH|||||||||Y
3000178|555-55-1112|2|7/23/2008|TEST|P.O. BOX 1112|TEMECULA|CA|92591||5555555555||||||||33|||1||1|3|||2|||||||||||||3|3||2|
2||||2||9||2|1|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|555-55-1112|SMITH|JACK|||12/8/1975|2|BL|
||||||||Y
3000317|555-55-1113|2|7/29/2008|TEST|P.O. BOX 1113|MORENO VALLEY|CA|92556||5555555555||||||||55|||1||4|1|||2|||||||||||||1|3||2|2||||
2||9||1|0|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||
||Y

Poi eseguire il seguente script nawk come \ n è necessaria dopo la # 103 e # 120 voci. (nawk-f scriptname> nomefile1)

Codice:
[
BEGIN {
   FS="|"
       }
 
{
  OFS="|"
}
 
{
print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,
$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,
$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,
$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,
$100,$101,$102,$103,"\n",
$104,$105,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,
$117,$118,$119,$120,"\n"
}
END {}

Il nawk script di uscita (cioè nomefile1) è il seguente:

Codice:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||5555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2
||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y|
|555-55-1111|SMITH|JOHN|||12/23/1960|2|WH|||||||||Y|

3000178|555-55-1112|2|7/23/2008|TEST|P.O. BOX 1112|TEMECULA|CA|92591||5555555555||||||||33|||1||1|3|||2|||||||||||||3|3||2|
2||||2||9||2|1|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|
|555-55-1112|SMITH|JACK|||12/8/1975|2|BL|||||||||Y|

3000317|555-55-1113|2|7/29/2008|TEST|P.O. BOX 1112|MORENO VALLEY|CA|92556||555555555||||||||55|||1||4|1|||2|||||||||||||1|3||2|2||||
2||9||1|0|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|
|555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y|

Il problema è il terzo di ogni linea di ingresso, la nawk script ha inserito un ulteriore primo carattere pipe (cioè |) ed è causa di una grande quantità di caos dato il mio fabbisogno di importazioni. Adesso ho provato vari sed metodi di eliminazione sulla base del primo carattere di ogni 3a linea in tutto il file, purtroppo senza successo. Infine, ho rivisto il nawk script nel tentativo di escludere il carattere aggiuntivo tubo, il tutto senza successo.

Codice:
|555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y|

Ha bisogno di essere:

Codice:
555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y|

Review, pensieri e suggerimenti sono davvero accolto.

Grazie!
  #2 (permalink)  
Old 10-06-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderatore (tutor)
  
 

Iscriviti Data: giugno 2008
Ubicazione: INDIA
Messaggi: 1.418
provare a utilizzare "\ b", dopo "\ n"
  #3 (permalink)  
Old 10-06-2008
VPREATR VPREATR is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2008
Interventi: 3
Citazione:
Originalmente inviato da vidyadhar85 View Post
provare a utilizzare "\ b", dopo "\ n"
Ecco il risultato:

Codice:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2
||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y|
^H|555-55-1111|SMITH|JOHN|||12/23/1960|2|WH|||||||||Y|
^H

  #4 (permalink)  
Old 10-06-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmatore, autore
  
 

Iscriviti Data: marzo 2007
Luogo: Toronto, Canada
Messaggi: 2.372

Codice:
BEGIN { FS = OFS = "|" }
{
 print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,
     $16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,
     $29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,
     $42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,
     $55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,
     $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
     $81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,
     $94,$95,$96,$97,$98,$99,$100,$101,$102,$103
 print ""
 print $104,$105,$106,$107,$108,$109,$110,$111,$112,$113,
       $114,$115,$116,$117,$118,$119,$120
 print ""
}

  #5 (permalink)  
Old 10-06-2008
VPREATR VPREATR is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2008
Interventi: 3
Citazione:
Originalmente inviato da cfajohnson View Post
Codice:
BEGIN { FS = OFS = "|" }
{
 print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,
     $16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,
     $29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,
     $42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,
     $55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,
     $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
     $81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,
     $94,$95,$96,$97,$98,$99,$100,$101,$102,$103
 print ""
 print $104,$105,$106,$107,$108,$109,$110,$111,$112,$113,
       $114,$115,$116,$117,$118,$119,$120
 print ""
}
Questo ha fatto il trucco:

Codice:
BEGIN { FS = OFS = "|" }
{
 print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,
     $16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,
     $29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,
     $42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,
     $55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,
     $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
     $81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,
     $94,$95,$96,$97,$98,$99,$100,$101,$102,$103
 print $104,$105,$106,$107,$108,$109,$110,$111,$112,$113,
       $114,$115,$116,$117,$118,$119,$120
 print ""
}

Il primo stampa \u003d "" dichiarazione è stato rimosso in quanto è stata la creazione di un ulteriore / inutili riga (ossia di separazione).

Grazie!
  #6 (permalink)  
Old 10-07-2008
vijay_0209 vijay_0209 is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 52
provare questo .... dimmi se questo funziona bene .....

awk '(
if (NR% 3! \u003d 0)
(
stampa
)
altro
(
for (i \u003d 1; i <\u003d NF; i + +)
(
if (i \u003d\u003d 1)
(
printf ( "% s", substr ($ 1,2, la lunghezza ($ 1) -1))
)
altro
(
printf ( "% s", $ i)
)
)
printf "\ n"
)
) 'File

Ultimo a cura di vijay_0209; al 10/07/2008 01:09 AM..
  #7 (permalink)  
Old 10-07-2008
RahulJoshi's Avatar
RahulJoshi RahulJoshi is offline
Utente Registrato
  
 

Join Date: Aug 2008
Ubicazione: PUNE
Interventi: 98
dopo ur vecchi o / p solo dare segno e tubo sed 's /^|// g'
Closed Thread

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 è 01:47 PM.


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