The UNIX and Linux Forums  

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 les deux schémas et de supprimer un modèle ppat7046 De programmation et de script Shell 7 04-08-2009 10:19 AM
Supprimer des lignes entre deux modèles, sans suppression de la deuxième structure Ilja De programmation et de script Shell 1 11-14-2008 09:53 AM
Grep Toutes les lignes entre 2 modèles différents gurpreet470 De programmation et de script Shell 2 11-07-2008 04:45 PM
Obtenir les lignes entre la dernière apparition de deux modes de RvZ De programmation et de script Shell 8 08-08-2008 06:32 PM
Comment obtenir des lignes entre les deux modèles? racbern De programmation et de script Shell 11 04-23-2008 08:28 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 05-26-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Messages: 21
supprimer les lignes entre les modes

Salut, j'ai cherché dans ce forum tout au long de la journée, mais n'a pas été en mesure de trouver suffisamment de codes pour m'aider à faire une tâche. Le seul code que je peux arriver à ceci:

sed '/ [0-9] [0-9] /, / [0-9] [0-9] / (/ / p; d;)' inputfile> outputfile

Je voudrais sed/awk / grep un fichier de deux modèles, puis supprimer la ligne de démarcation entre ces modèles. S'il vous plaît voir le inputfile ci-dessous. Ce n'est qu'une petite partie d'une longue file. Tout en gras devrait être supprimée.

Dans ce cas, je veux faire une recherche pour le premier modèle [0 0 2], et le dernier modèle [2433 2433 2], puis supprimez toutes les lignes entre ces modèles, mais de maintien de la ligne [ANT_2] au-dessus de la ligne [2433 2433 2] . De même, je veux faire une recherche pour le premier modèle [0 0 4] et le dernier modèle [1 1 2], puis supprimez toutes les lignes entre ces modèles, mais de maintien de la ligne [ANT_6] au-dessus de la ligne [1 1 2]. Le nombre de lignes entre ces pattens peut varier. La seule chose que je peux voir qui est constant est [0 0].

Toute aide ou suggestion serait grandement appréciée.

inputfile
--------
ANT_1
0 0 2 janvier 14 10:11:44 2009
Règle fichier pathname: / home / la / _drc_
porte à plis zone ratio> 500
ANT_2
2433 2433 2 janvier 14 10:13:46 2009
Règle fichier pathname: / home / la / _drc_
MT1 porte à la zone ratio> 40
p 1 44
-2109300 -10645700
-2095600 -10645700
-2095600 -10649700
-2088500 -10649700
-2088500 -10655700
-2071900 -10655700
ANT_3
0 0 2 janvier 14 10:13:59 2009
Règle fichier pathname: / home / la / _drc_
MT2 diff porte intrants.
ANT_4
0 0 2 janvier 14 10:14:01 2009
Règle fichier pathname: / home / la / _drc_
or diff porte intrants.

ANT_5
0 0 4 janvier 14 10:14:01 2009
Règle fichier pathname: / home / la / _drc_
or diff porte intrants.
ANT_6
1 1 2 janvier 14 10:14:01 2009
Règle fichier pathname: / home / la / _drc_
or diff porte intrants.
NET_AREA_RATIO_RDBS
0 0 3 janvier 14 10:14:01 2009
ANT2.OUT
ANT3.OUT
ANT4.OUT


Desired outputfile
----------------
ANT_2
2433 2433 2 janvier 14 10:13:46 2009
Règle fichier pathname: / home / la / _drc_
MT1 porte à la zone ratio> 40
p 1 44
-2109300 -10645700
-2095600 -10645700
-2095600 -10649700
-2088500 -10649700
-2088500 -10655700
-2071900 -10655700
ANT_6
1 1 2 janvier 14 10:14:01 2009
Règle fichier pathname: / home / la / _drc_
or diff porte intrants.
  #2 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Messages: 2558
regarde la partie "Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utiles» et voir s'il ya une solution pour vous.
  #3 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Messages: 21
Ghostdog, Im ne savez pas par où le plus d'Unix / Linux Forum parce que je ne pouvais pas trouver dans ce forum liste.

J'ai été en mesure d'obtenir un code de ce forum et de les appliquer à ce que je fais. Il n'est pas exact, mais il est proche.


code
-----

Code:
#!/bin/bash
function drcext
{
# Extract one line above and two lines below a pattern
awk '/[1-9] [1-9] /{ before-=1;after=2; next }
after { after--;next }
{ store[++before]=$0}
END {
for(i=1;i<=before;i++) {
print store[i]
}
}' b > c
diff b c > d
sed -i 's/[0-9]*,[0-9]*[a-z]*[0-9]*/----------------------------------------------------------------/g' d
sed -i 's/< //g' d
# Add a variable content to the beginning of the file
rulepath=`grep Rule d`
sed -i '/Rule/d' d
sed "1i $rulepath" < d > e
}
drcext


Ceci est mon fichier d'entrée:

inputfile b
---------

Code:
die1 1000

WARN_1
0 0 2 May 4 16:20:21 2009 
Rule File Pathname: /coms
Rule File Pathname: /home/la/_tij4_drc_
TEOS_CH minimum spacing to VIA_1 is 10.0u, must not overlap
23_K
1 1 2 May 4 16:24:00 2009 
Rule File Pathname: /home/la/_tij4_drc_
TEOS_CH must be enclosed by Metal_3 10um min
p 1 4
CN tmplt c 1 0 0 1 0 0
-1512633 -8706882
-1507100 -8715212
-1507100 -8668836
-1512633 -8677166

Rule File Pathname: /home/la/_tij4_drc_
SU8_chm to Bond Pad min space is 10 um 
45_D2
20 20 2 May 4 16:30:03 2009 
Rule File Pathname: /home/la/_tij4_drc_
SU8_chm to Bond Pad at the end of a row min space is 100 um
e 1 2
CN die1 c 1 0 0 1 0 0
-1366000 -9000000 -1366000 -8991408
-1461658 -9029146 -1457396 -9031988
e 2 2
-1366000 -9000000 -1366000 -8981773
-1457396 -9031988 -1450898 -9034615
e 3 2
-1366000 -8804227 -1366000 -8800000

Rule File Pathname: /home/la/_tij4_drc_
Primer must be enclosed by SU8_prm
AT_1
2 2 2 May 4 16:30:20 2009 
Rule File Pathname: /home/la/_tij4_drc_
target must be covered by (drawn) dso
p 1 36
CN target_bondalign c 1 0 0 1 -1676600 7170000
-24000 0
-23635 -4168

Rule File Pathname: /home/la/_tij4_drc_
SU8_prm must overlap dso over gld_tgt by 3um min
AT_5
2 2 2 May 4 16:30:20 2009 
Rule File Pathname: /home/la/_tij4_drc_
SU8_prm/chm/nzl not allowed over gld_tgt
p 1 36
CN target_bondalign c 1 0 0 1 -1676600 7170000
-24000 0
-23635 -4168
-22553 -8208
-20785 -12000
-18385 -15427

Rule File Pathname: /home/la/_tij4_drc_
contact not allowed in stitch zone
su8_14_26A
55 55 2 May 4 16:30:30 2009 
Rule File Pathname: /home/la/_tij4_drc_
NOZZLE minimum width is 10um (for 14um thick material)
p 1 114
CN resistor_array c 1 0 0 1 0 0
-1052100 -7525307
-1052067 -7525796
-1052066 -7525803
-1051974 -7526268


Ceci est mon fichier de sortie:

outputfile e
-----------

Code:
Rule File Pathname: /home/la/_tij4_drc_
----------------------------------------------------------------
23_K
1 1 2 May 4 16:24:00 2009 
TEOS_CH must be enclosed by Metal_3 10um min
----------------------------------------------------------------
AT_1
2 2 2 May 4 16:30:20 2009 
target must be covered by (drawn) dso
----------------------------------------------------------------
AT_5
2 2 2 May 4 16:30:20 2009 
SU8_prm/chm/nzl not allowed over gld_tgt
----------------------------------------------------------------
su8_14_26A
55 55 2 May 4 16:30:30 2009 
NOZZLE minimum width is 10um (for 14um thick material)

Je ne sais pas pourquoi la commande awk supprimer les lignes qui sont trouvées par le modèle de recherche [1-9] [1-9]. L'affichage de l'origine, ce code est d'extraire une ligne au-dessus et les deux lignes ci-dessous la structure [1-9] [1-9]. Ce code est en arrière. Il supprime la place de l'extrait que la raison pour laquelle je dois utiliser le diff pour obtenir les lignes qui ont été supprimer. S'il vous plaît laissez-moi savoir comment recode pour en extraire au lieu de supprimer.

Il ya un problème avec ce code que je ne comprends, c'est que je utiliser le modèle [1-9] [1-9], il ne devrait pas être l'extraction de la ligne:

55 55 2 Mai 4 16:30:30 2009

Mais c'est ce que je voulais. Je veux aussi que la ligne:

20 20 2 Mai 4 16:30:03 2009

Mais il n'a pas été extrait. Comment puis-je changer la configuration / [1-9] [1-9] /, de sorte que il vous permet de trouver n'importe quelle chaîne, c'est-à-dire, 55 55 2 ou 20 20 2? J'ai essayé un autre motif / [1-9] * [1-9] * / ou quelque chose le long de cette ligne, mais il ne fonctionne pas.

Désolé pour la longue, mais toute demande de conseiller serait grandement appréciée. Ceci est mon code:

Dernière édition par vgersh99; au 05.28.2009 04:01 PM.. Motif: Ajout de balises de code
Bits Awarded / shamushamu d'accusation pour ce post
Date Utilisateur Commentaire Montant
05-28-2009 vgersh99 N / A 0
  #4 (permalink)  
Old 05-28-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5131
Pour conserver les forums de haute qualité pour tous les utilisateurs, s'il vous plaît prendre le temps de formater vos messages correctement.

Tout d'abord, l'utilisation Code Tags lorsque vous affichez un code ou de données d'échantillons que les autres puissent facilement lire le code. Vous pouvez facilement le faire en mettant en évidence votre code et en cliquant sur le # dans le menu d'édition. (Vous pouvez aussi taper le code des balises [code] et [/ code], par part.)

Deuxièmement, éviter d'ajouter la couleur ou de différentes polices de caractères et la taille de la police de vos messages. L'utilisation sélective de la couleur pour mettre en évidence un mot ou une phrase peut être utile à la fois, mais en utilisant la couleur, en général, fait le plus difficile à lire les forums, en particulier les couleurs vives comme le rouge.

Troisièmement, il faut faire attention lorsque vous copier-coller, de modifier tout impair de caractères et assurez-vous que tous les liens fonctionnent bien.

Merci.

Les systèmes UNIX et Linux Forums
  #5 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Messages: 21
Sorry about that, vgersh99. Je suis nouveau à Linux et à ce forum.

Je viens de trouver et corriger mes codes. J'ai changé le schéma de:


Code:
awk '/^[1-9]/{ before-=1;after=2; next }


Mais je suis toujours très curieux de voir si quelqu'un a une meilleure solution que cela. Je pense que cela peut être fait en quelques lignes.
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 11:29 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