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
Besoin de remplacer le premier mot d'une ligne, si elle se produit de nouveau au cours de la prochaine ligne (shell) geeko De programmation et de script Shell 4 06-18-2009 02:36 PM
recherche d'une chaîne de caractères, remplacer l'ensemble de la ligne avec de nouvelles en ligne kkraja De programmation et de script Shell 4 08-07-2008 02:26 AM
Comment faire pour remplacer une ligne ukatru De programmation et de script Shell 2 08-04-2008 02:51 PM
Comment faire pour remplacer une ligne de trois dans sed ch0sen De programmation et de script Shell 6 03-05-2008 12:08 PM
sed - remplacer la ligne qui contient le Pattern match avec une nouvelle ligne kousikan De programmation et de script Shell 2 03-24-2007 07:24 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 09-01-2008
unknown123 unknown123 is offline
Registered User
  
 

Date d'inscription: août 2008
Posts: 19
Red face Remplacer la ligne de Rien

Salut,

Je veux remplacer certaines lignes dans un fichier "source.txt" en prenant modèle de recherche d'entrée d'un autre fichier nommé "abc".

Recherche modèle du fichier d'entrée sont les lignes suivantes:

vi abc
2637918
2707239
2709124
2709148
2709159
2709177
...........

i am running code suivant:

for i in `cat abc»; faire perl -pi.bk4-e 's /^.*$ i. * / / g' source.txt; fait

mais il ne fonctionne pas .......
pls help.
  #2 (permalink)  
Old 09-01-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Modérateur (Le Tuteur)
  
 

Date d'inscription: juin 2008
Lieu: INDE
Messages: 1391
tout lire en ligne
faire
sed -i "s /^.*$ ligne .* / / g" source.txt / / ou / / sed -i 's /^.*${ ligne }.*// g'
done <abc

ou d'essayer

Dernière édition par vidyadhar85; au 09.01.2008 04:15 AM..
  #3 (permalink)  
Old 09-01-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
Vous voulez les remplacer par des lignes vides, ou les supprimer? Supprimer est simple:

Code:
fgrep -vf abc Source.txt
Pour les remplacer par rien, peut-être les suivants:

Code:
sed -e 's%.*%s/.*&.*//%' abc | sed -f - Source.txt
Peut-être que votre sed ne peut pas traiter l'entrée standard pour l'option-f, le cas échéant, un rapport et nous allons réfléchir à des solutions.

Répétée en boucle sur tous les modèles d'entrée semble terriblement inélégant et inefficace.
  #4 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Registered User
  
 

Date d'inscription: août 2008
Posts: 19
Salut Vidya,
ur sed commnd est de remplacer le modèle de recherche d'entrée de ligne, mais rien .... taille du fichier de sortie devient 3 fois plus que le fichier original .... signifie que chaque fois après le remplacement de la ligne correspondent à rien de la commande est d'ajouter la totalité du fichier dans le fichier de sortie à nouveau ....

pl ....... hw aider quelqu'un à surmonter ce problème ...
  #5 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - l'étudiant
  
 

Join Date: Feb 2007
Lieu: Singapour / Bangalore / Cochin
Messages: 596
Code:
while read line
do
perl -i -ne 's/'$line'//g; print; ' filename
done < abc
  #6 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Registered User
  
 

Date d'inscription: août 2008
Posts: 19
Dennis ... il n'est pas de travail ....... pls préciser clairement.

supposons que mon fichier de sortie est OUTFILE .....

merci de me dire le code exact ..
  #7 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - l'étudiant
  
 

Join Date: Feb 2007
Lieu: Singapour / Bangalore / Cochin
Messages: 596
Citation:
Posté par unknown123 View Post
Dennis ... il n'est pas de travail ....... pls préciser clairement.

supposons que mon fichier de sortie est OUTFILE .....

merci de me dire le code exact ..
Elle fonctionne bien!
Entrée:

Citation:
[ "/ tmp"]> cat échantillon
1233
message
[ "/ tmp"]> cat OUTFILE
test message 1233 abcf fsd f ds
message de test de massage abccd message
Code:

Citation:
[ "/ tmp"]> while read ligne
> Ne
> perl -i-ne 's / "$ ligne" / / g; print;' OUTFILE
> Done <échantillon
Sortie:

Citation:
[ "/ tmp"]> cat OUTFILE
test abcf fsd f ds
test abccd de massage
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 10:18 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