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
sed query gopsman Shell scripting e di programmazione 4 02-03-2009 02:41 AM
E nella query SQL Lindarella Shell scripting e di programmazione 3 10-09-2006 05:43 PM
Query In awk raguramtgr UNIX for Dummies Domande & Risposte 1 08-27-2004 12:00 PM
RPM Query silvaman UNIX e avanzata per utenti esperti 1 08-15-2003 08:56 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 12-07-2006
grinder182533 grinder182533 is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
sed query

Ho una serie di cartelle / temp / a / temp / b / temp / c

In cartelle a, b, c, ho file
a1.txt ... ... .... a20.txt
b1.txt ... ... .... b40.txt &
c1.txt ... ... .... c60.txt

Ogni file ha lo stesso formato dei dati: --

Linea 1 AAAAA aaaa
Linea 2 BBB bbbbbb
Linea 3 CCCC cccccc
Etc etc

Ho bisogno di scrivere una sed script che si passano in rassegna tutti i file e riformattare i dati in tal modo: --

Linea 1 AAAAA aaaa
Linea 2 BBB
Linea 3 X bbbbbb
Linea 4 CCCC cccccc
Etc etc

Quindi ho bisogno di inserire un CR / LF in linea 2 posizione 4,
creare una nuova linea 3 con un testo (X) e il valore di ciò che è stato a destra del precedente Linea 2 (bbbbbb)
e spostare i restanti linee di una riga verso il basso.

Chiunque può aiutare per favore?
Non so sed molto bene, e non a tutti i awk.
  #2 (permalink)  
Old 12-07-2006
blowtorch's Avatar
blowtorch blowtorch is offline Forum Advisor  
Supporter
  
 

Iscriviti Data: dicembre 2004
Ubicazione: Singapore
Interventi: 2.350
Se questo lavoro?

Codice:
awk '{if(NR==2) print $1,"\nX",$2; else print}' filename > filename.new
mv filename.new filename

Esegui questo attraverso un loop su ogni file.

Nota che ho ipotizzato che il testo nel file è così come si sta mostrando che (esattamente lo stesso numero e l'ubicazione dello spazio da caratteri specifici). Anche se non basta per cambiare la awk un po '.
  #3 (permalink)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: marzo 2006
Località: Bangalore, India
Messaggi: 1.398
SED soluzione


Codice:
cd /a
for file in *
do
    sed "2 s/\(...\).\(.*\)/\1\\
    X \2/" $file > tmp
    mv tmp $file
done

  #4 (permalink)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
sed soluzione

Grazie Anbu23
Quando ho inviato ieri, ho semplificato il mio problema, pensando che ho potuto seguire la tua logica, e si applicano al mio problema.
In realtà, è la linea 5 della posizione 32, prima che il CR / LF è quello di essere inseriti.
La nuova linea 6 conterrà testo fisso da posizione 1 a 31 compreso, (X)
e la posizione da 32 a 34 dalla linea 5 sarà scesa giù per le stesse posizioni sulla linea 6.
Ho provato
sed "5 s / \ (... \). \ (.* \) / \ 1 \ \
X \ 2 / "$ file> tmp
ma questo ancora versato dopo 3 caratteri.

Ho provato
sed "5 s / \ (............................. \). \ (.* \) / \ 1 \ \
X \ 2 / "$ file> tmp
ma è un errore di sintassi.
La speranza di poter contribuire ulteriormente.
Grazie
  #5 (permalink)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: marzo 2006
Località: Bangalore, India
Messaggi: 1.398
In precedenza è stato detto che dopo pochi caratteri in qualche linea deve essere spostato alla prossima linea con X. Ma ora si sta dicendo che avete bisogno di carattere iniziale e X e caratteri rimanenti in una nuova line.I non sono in grado di ottenere.
Potete darmi esempio?
  #6 (permalink)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
sed esempio

Hi Anbu23

ingresso

Ref: 12345678 ^ M
Rapporto Data: 28-mag-2006 ^ M
Debit A / c: 54321235 - abcdef ^ M
Cliente: 100210547 - abcdef ^ M
Importo addebito: 9999999999,00 USD ^ M
Descrizione: filo Wxxxxxx ^ M
^ M
Exchange Rate: 1,00000 ^ M
etc etc

deve trasformarsi in

Ref: 12345678 ^ M
Rapporto Data: 28-mag-2006 ^ M
Debit A / c: 54321235 - abcdef ^ M
Cliente: 100210547 - abcdef ^ M
Importo addebito: 9999999999,00 ^ M
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx USD ^ M
Descrizione: filo Wxxxxxx ^ M
^ M
Exchange Rate: 1,00000 ^ M
etc etc

taglio & incolla ha compensato il display di cui sopra,
ma la mia prima linea 5 posizione 31 sono esatte.
La preghiamo inoltre di notare che ci sono un sacco di segnalazioni di ogni file,
e tutti devono essere riformattato.
Molte grazie di nuovo
Fare apprezzare il vostro sostegno.
  #7 (permalink)  
Old 12-08-2006
cskumar cskumar is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2005
Interventi: 67
provare questo uno

awk '(if (match ($ 0, "USD")) (print $ 1 $ 2 $ 3, "\ nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", $ 4) print $ 0)' file> newfile

Spero USD entrerà solo in debito Importo: campo.

Saluti,
cskumar
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 è 07:43 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