Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
Google Site



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.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 12-05-2003
Utente Registrato
 

Iscriviti Data: novembre 2002
Interventi: 5
Question La compilazione di un testo

Ciao,

Ho un problema con la compilazione di un testo. Ho diverse lunghezze in un file e vorrei vedere che tutte le linee è la stessa lunghezza, ponendo pari a zero di fronte al largo della linea.

Si prega di consulenza.

Vecchio file:
----------
5432
233
3455
4432

Nuovo File:
-----------
5432
0233
3455
4432
Sponsored Links
  #2 (permalink)  
Old 03-18-2009
Utente Registrato
 

Join Date: Aug 2006
Interventi: 20

Codice:
awk 'BEGIN {m=0} {a[NR]=$0;if (m<length($0)){ m=length($0)}} END { for (x in a) { if (length(a[x])<m) {  for (i=length(a[x]);i<m;i++) { printf "0" }  } print a[x] }} ' file

  #3 (permalink)  
Old 03-19-2009
rikxik's Avatar
Utente Registrato
 

Iscriviti Data: dicembre 2007
Interventi: 250
Citazione:
Originalmente inviato da aaaaargh View Post
Codice:
awk 'BEGIN {m=0} {a[NR]=$0;if (m<length($0)){ m=length($0)}} END { for (x in a) { if (length(a[x])<m) {  for (i=length(a[x]);i<m;i++) { printf "0" }  } print a[x] }} ' file

Non è necessario che per il ciclo for per spingere zeri davanti - printf è abbastanza intelligente:


Codice:
$ nawk '{a[NR]=$0;m<length($0)&&m=length($0)}END{for(i in a){printf "%0"m"d\n", a[i]}}' of
0233
3455
4432
5432

  #4 (permalink)  
Old 03-19-2009
vidyadhar85's Avatar
Moderatore (tutor)
 

Iscriviti Data: giugno 2008
Ubicazione: INDIA
Messaggi: 1.459
se lui ha bisogno solo come desidera 4 campo poi che sarà di grande aiuto

Codice:
awk '{printf "%04d\n" ,$0}' filename

  #5 (permalink)  
Old 03-19-2009
rikxik's Avatar
Utente Registrato
 

Iscriviti Data: dicembre 2007
Interventi: 250
Citazione:
Originalmente inviato da peterk View Post
Ho diversi lunghezze in un file e vorrei vedere che tutte le linee è la stessa lunghezza, ponendo pari a zero di fronte al largo della linea.
Quindi stiamo facendo max (diverso).
  #6 (permalink)  
Old 03-19-2009
Utente Registrato
 

Join Date: Sep 2006
Messaggi: 2.604
se si dispone di Python

Codice:
# more file
5432
233
3455
44322332423

# python -c 'data=open("file").read().split();print "\n".join([ i.zfill(max(map(len,data))) for i in data ])'
00000005432
00000000233
00000003455
44322332423

  #7 (permalink)  
Old 03-19-2009
Utente Registrato
 

Iscriviti Data: giugno 2007
Ubicazione: Pechino Cina
Interventi: 1.133

Codice:
awk '{
_[NR]=$0
len=length($0)
if (len>n)
	n=len
}
END{
	for(i=1;i<=NR;i++)
		printf("%"n"s\n",_[i])
}' filename | sed 's/ /0/g'

Sponsored Links
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 Chiuso


Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
c programma per estrarre il testo tra due delimitatori di alcuni file di testo kukretiabhi13 Programmazione 7 12-03-2008 06:29 PM
Costruzione di ricerca full-text con Oracle Applications Testo Linux Bot Oracle Aggiornamenti (RSS) 0 04-06-2008 06:10 AM
Riempimento in caratteri di linea di un file di hcclnoodles Shell scripting e di programmazione 1 07-27-2004 11:11 PM
grep più file di testo nella cartella in 1 file di testo? coppertone UNIX for Dummies Domande & Risposte 7 08-23-2002 03:50 PM
Processo responsabile per il riempimento su / var / tmp Mal UNIX e avanzata per utenti esperti 3 04-25-2002 12:45 PM



Tutti gli orari sono GMT -4. La data di oggi è 09:51 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-2010. Tutti i diritti Reserved.Ad Management by RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0