The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Supprimer la ligne en fichier texte Berserk UNIX pour les nuls Questions et réponses 6 12-16-2008 03:44 PM
Comment supprimer un texte sans ouvrir le fichier. stevefox De programmation et de script Shell 12 02-21-2008 01:24 PM
Supprimer la première ligne à partir de n'importe quel fichier texte? aungomarin De programmation et de script Shell 5 05-16-2006 10:42 PM
comment supprimer immédiatement le texte dans un fichier? forevercalz De programmation et de script Shell 5 01-08-2006 10:28 PM
supprimer la dernière ligne du fichier texte hcclnoodles De programmation et de script Shell 4 06-25-2002 10:52 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registered User
  
 

Join Date: Aug 2007
Messages: 27
Ecraser et Supprimer dans un fichier texte

Chers tous,

J'ai fichier texte comme ceci:

Header
Record 1
Record 2
.......
Record n
Tail

Cette ligne de code:
awk '(if (NR \u003d\u003d 1) (head \u003d substr ($ 0,1,300);) else (last \u003d substr ($ 0,1,300);) END (printf "Header est: Trailer 300% est:%-300 \ n ", la tête, la dernière) 'filename

Trailer-tête et converti en une ligne et dans les 300 caractères each.The sortie est une seule ligne.

Maintenant, je veux remplacer cette ligne au-dessus (en-tête + la queue) au cours de la première ligne du fichier d'origine (original header) et supprimer la queue ........ i pouvez copier cet en-tête et la queue à nouveau fichier, puis ajouter des enregistrements 1 à n à l'enregistrement de ce nouveau fichier, mais qui cause trop faible performance ........ Je pense que mieux pour mettre à jour la première et la dernière ligne de ce fichier ........... ...... oui, comment puis-je faire cela?

c'est-à-dire 1-mise à jour de l'en-tête de ligne c'est-à-dire (header + trailer)
2-supprimer la queue dans le fichier original (mai utiliser coupe tail -1 nom de fichier?)
  #2 (permalink)  
Old 08-14-2007
Lorcan lorcan is offline
Registered User
  
 

Join Date: Mai 2007
Messages: 219
Dont bosse votre question par l'ouverture d'un nouveau fil. Vous pouvez le régler dans votre ancien fil

Tête et pied de page
  #3 (permalink)  
Old 08-14-2007
Lorcan lorcan is offline
Registered User
  
 

Join Date: Mai 2007
Messages: 219
Enregistrer la sortie de l'awk dans une variable comme

Code:
New_head=$(awk '{ if ( NR == 1 ) { head=substr($0,1,300);} else { last = substr($0,1,300);}END{printf "Header is : %-300s Trailer is : %-300s\n", head, last}' filename )
Et puis, vous pouvez faire quelque chose comme

Code:
sed -e "1 c\ $New_head" -e '$d' filename
  #4 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registered User
  
 

Join Date: Aug 2007
Messages: 27
Merci ..... J'ai essayé le code, mais sed commande ne fonctionne pas correctement, il donne en sortie:

sed: Commande tronqués: 1 c \-tête est: est Headervalue ....... Trailer: Trailer valeur .....


Il ne fait pas de changement dans le fichier ainsi.
  #5 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registered User
  
 

Join Date: Aug 2007
Messages: 27
un peu de chance pour moi aussi?
  #6 (permalink)  
Old 08-14-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Lieu: node feuilles dans les arbres B +
Posts: 2953
Il a été un autre fil que Lorcan dit et cela semble être que la continuation du fil ci-dessus dans un nouveau poste.

S'il vous plaît continuer à poser votre question dans le même fil de sorte qu'il serait plus facile de suivre plutôt que de commencer un nouveau fil pour la même question.

En supposant que j'ai bien compris votre essayer cette exigence,

Code:
awk ' { if ( NR == 1 ) { head=$0 } else { last = $0 } arr[i++]=$0; }END{ printf "Header is : %s Trailer is : %s\n", head, last; for( x=0; x<i-1; x++) { print arr[x] } }' filename
Code:
Header is : header Trailer is : trailer
header
record 1
record 2
record 3
combiné tête et de la remorque est suivie par celle
tête est disponible
tous les enregistrements sont affichés
enregistrement ne s'affiche pas

Si ce n'est pas ce que vous aviez demandé, nous le faire savoir
  #7 (permalink)  
Old 08-16-2007
33junaid 33junaid is offline
Registered User
  
 

Join Date: Aug 2007
Messages: 27
ok c'est bien, mais j'ai été juste préoccupé par le nombre de fichiers créés ........ il ya un problème que je suis une ligne supplémentaire (ligne blanche) à la fin du fichier ....... .... pourquoi en utilisant ce code:


awk '(if (NR \u003d\u003d 1) (head \u003d substr ($ 0,1,149);) else (last \u003d substr ($ 0,1,149);) arr [i ++]\u003d$ 0;) END (printf "% 149s% -- 149s \ n ", la tête, la dernière, pour (x \u003d 1; x <i-1; x++) (print arr[x]) }'file1> file2


Quand j'ai ouvert file2, j'obtiens une ligne supplémentaire .......?
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 08:50 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0