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 d'aide dans la commande sed (en ajoutant une ligne vierge btw chaque bloc généré par le modèle) frozensmilz De programmation et de script Shell 2 01-08-2009 12:12 AM
faire plusieurs lignes contenant un modèle unique en ligne VTAWKVT De programmation et de script Shell 13 12-04-2008 06:40 PM
commentaire / supprimer un modèle particulier à partir de la deuxième ligne de l'adéquation profil IMAS De programmation et de script Shell 4 10-13-2008 02:37 AM
Impression de modèle en ligne FK_Daemon De programmation et de script Shell 3 11-23-2007 04:27 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

Reply
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 01-05-2009
frozensmilz's Avatar
frozensmilz frozensmilz is offline
Registered User
  
 

Date d'inscription: août 2008
Messages: 28
Besoin d'aide au commande sed [+ l'impression d'un modèle de sa ligne ou pas de la seule ligne]

Bonjour les amis,

Ce n'est que tout récemment j'ai commencé à apprendre sed ... une commande que j'ai trouvé sed est plus rapide à trouver les modèles que certains de mes scripts qui utilise grep pour vérifier la Patten l'intérieur d'un fichier ligne par ligne en utilisant la méthode de recherche qui prend du temps.

Le script ci-dessous "strMatch" est l'un d'eux que j'ai utilisé pour la recherche d'un modèle. Une fois le modèle est trouvé, il affiche le modèle et le numéro de la ligne ou le numéro de la ligne seul, comme indiqué ci-dessous.

> Input
strMatch Sample.cpp "PATTERN STRING"
> Output
5: STRING PATTERN

> Input
strMatch Sample.cpp "STRING PATTERN" 2
> Output
5

Beaucoup de mes autres script a commencé à utiliser ce script et de la dépendance de ce script est presque devenu complexe, de telle sorte que les nouveaux scripts qui utilise strMatch directement ou indirectement à des fins diverses est lent dans l'exécution. J'ai remarqué que les sed commande peut être utilisée pour modifier strMatch pour augmenter la vitesse de recherche ...

sed '/ PATTERN STRING / p' Sample.cpp

Mais j'ai besoin d'obtenir le numéro de la ligne aussi comme mon précédent strMatch .... Est-il possible d'imprimer les résultats comme ci-dessous

Produit 1 [Numéro de ligne et mode]
5 STRING PATTERN

Produit 2 [Ligne numéro motif a été trouvé]
5

Parce que certains de mes scripts utilise ces numéros de ligne ..... Veuillez aider à faire de script strMatch rapide .... le but de strMatch est à la recherche d'un motif et le motif de retour ou de l'emplacement le long de la configuration de l'emplacement ci-dessous est en fait ..... strMatch script ...

il est un cas particulier pour le traitement des "include" mot-clé ..... je ne suis pas en mesure de trouver une alternative pour les "exec" pour passer le contenu du fichier à une variable en tant que telle (avec alignement et )..... en quelque sorte à chaque fois que je recherche pour des mots clés ... il exec sur tous les fichiers dans le dossier ....... je pense, avec sed commande i wont be exigeant "exec",

Merci d'avance ...........
-------------------------------------------------- -----------------------

filtre () (
$ pattern \u003d 1
ligne \u003d $ 2
for x in $ line; faire
flag \u003d `echo $ x | grep-c $ pattern»

if [$ flag-eq 1], puis
return $ drapeau
autre
return 0
fi
fait
)

# filterKeywords () (

#)


$ pattern \u003d 2
exec <$ 1
# fileCont \u003d `rdfil $ 1»
linCnt \u003d 1

exitCnt \u003d `lincnt $ 1»
cnt \u003d 0
count \u003d 0
mode \u003d $ 3
# 1 $ rdfil
tout lire en ligne, ne

if [ "$ 2" \u003d\u003d "include"], puis
quitCon \u003d `echo $ line | grep-c "//-------------------------"`
if [$ quitCon-eq 1], puis
count \u003d$(($ count + 1))
if [$ count-eq 2], puis
pause
fi
fi
fi

status \u003d `echo $ line | grep-c" $ 2 "»
if [$ status-eq 1], puis
fflag filtre \u003d `$ pattern $ line»
wcnt \u003d `echo $ fflag | wc-l`
if [$ wcnt \u003d\u003d 1], puis
if [$ exitCnt-ge $ cnt], puis
if [ "$ mode"! \u003d "2"], puis
case $ mode
"NUM") # LINE NUMBER
echo $ linCnt
;;

"FON") # FIRST OCCURRENCE LINE NUMBER
echo $ linCnt
sortie
;;

"FOLN") # FIRST OCCURRENCE LIGNE
echo $ line
sortie
;;

"LN") # uniquement les lignes
echo $ line
;;

*) # DEFAULT
echo $ linCnt: $ line
;;
esac
# echo "Salut"
autre
echo $ linCnt
fi
# filterKeywords $ line
fi
fi
fi
linCnt \u003d$(($ linCnt + 1))

cnt \u003d$(($ cnt + 1))
# echo $ "---------------------------------------$ cnt exitCnt "
fait

# echo "Bye!"
  #2 (permalink)  
Old 01-05-2009
Franklin52 Franklin52 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4307
Avez-vous essayé grep? Cela donne le numéro de la ligne et la ligne délimitée par un colon:

Code:
grep -n <pattern> <file>
Pour obtenir le numéro, vous pouvez faire quelque chose comme:

Code:
grep -n <pattern> <file>| cut -d: -f1
Consultez la page de manuel de grep et de réduire l'utilisation d'options.

Observe
  #3 (permalink)  
Old 04-29-2009
shivarajM shivarajM is offline
Registered User
  
 

Date d'inscription: avril 2009
Posts: 12
Arrow J'ai besoin que la première comparution de la structure?

Citation:
Posté par Franklin52 View Post
Avez-vous essayé grep? Cela donne le numéro de la ligne et la ligne délimitée par un colon:

Code:
grep -n <pattern> <file>
Pour obtenir le numéro, vous pouvez faire quelque chose comme:

Code:
grep -n <pattern> <file>| cut -d: -f1
Consultez la page de manuel de grep et de réduire l'utilisation d'options.

Observe
J'ai besoin que la première apparition de pair modèle?

aidez-moi ......
  #4 (permalink)  
Old 04-29-2009
Franklin52 Franklin52 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4307
Citation:
Posté par shivarajM View Post
J'ai besoin que la première apparition de pair modèle?

aidez-moi ......
Avez-vous essayé le -m option de grep?
  #5 (permalink)  
Old 06-28-2009
Shils shils is offline
Registered User
  
 

Date d'inscription: juin 2009
Messages: 1
obtenir le numéro de ligne en utilisant la commande sed

Salut,

Si le fichier est comme ci-dessous, s'il vous plaît laissez-moi savoir si la commande est à droite pour obtenir le nombre comme contenant la chaîne - à la Terre "\u003d" symbole.

Nom du fichier: example.txt
123 | Terre | 2009

sed '/ Terre /
(
\u003d
) 'Example.txt
Reply

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:19 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