The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Hulp nodig in sed commando (het toevoegen van een lege regel btw elk blok wordt gegenereerd door patroon) frozensmilz Programmeren en Shell Scripting 2 01-08-2009 12:12 AM
meerdere lijn met een patroon in een enkele lijn VTAWKVT Programmeren en Shell Scripting 13 12-04-2008 06:40 PM
commentaar / verwijderen van een bepaald patroon vanaf tweede regel van de matching patroon Imas Programmeren en Shell Scripting 4 10-13-2008 03:37
Afdrukken patroon in lijn FK_Daemon Programmeren en Shell Scripting 3 11-23-2007 04:27 PM
sed - Vervang Line bevat de Pattern match met een nieuwe lijn kousikan Programmeren en Shell Scripting 2 03-24-2007 07:24

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-05-2009
frozensmilz's Avatar
frozensmilz frozensmilz is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Posts: 28
Hulp nodig in sed commando [afdrukken van een patroon + de lijn geen of geen lijn staan]

Hallo vrienden,

Pas zeer onlangs ben ik begonnen met het leren sed een opdracht ... Ik vond dat sed is sneller in het vinden van de patronen dan sommige van mijn scripts die gebruik maakt van grep om de Patten controleren in een bestand met behulp van regel voor regel zoekmethode dat is tijdrovend.

Het onderstaande script "strMatch" is het een van hen die ik gebruik om te zoeken naar een patroon. Wanneer het patroon is gevonden, geeft het patroon en de lijn nummer of de lijn komt alleen zoals hieronder getoond.

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

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

Veel van mijn andere script is gestart met het gebruik van dit script en de afhankelijkheid van dit script is bijna complex werd zodanig zijn dat de nieuwe scripts die gebruik maakt van strMatch direct of indirect voor verschillende doeleinden is traag in de uitvoering. Ik heb gemerkt dat de volgende sed commando kan gebruikt worden om bv. strMatch om de zoeksnelheid ...

sed '/ PATTERN STRING / p' Sample.cpp

Maar ik moet de lijn nummer krijgt ook net als mijn vorige strMatch .... Is er een manier om de output zoals hieronder afdrukken

Uitgang 1 [Regelnummer & pattern]
5 PATTERN STRING

Output 2 [regelnummer waar patroon werd gevonden]
5

Omdat sommige van mijn scripts maakt alleen gebruik van deze lijn nummers ..... Vriendelijk te helpen in het maken van strMatch script snel .... het doel van strMatch is het zoeken naar een patroon en het patroon locatie of het patroon en de plaats ..... Hieronder vindt u de werkelijke strMatch script terugkeer ...

er is een speciaal geval voor de behandeling van "zijn" keyword ..... Ik ben niet in staat om een alternatief te vinden voor "exec" commando om het bestand te inhoud te geven aan een variabele als zodanig (met de juiste uitlijning en )..... wanneer een of andere manier zoek ik ook trefwoord ... het zal exec op alle bestanden in de map ....... en ik denk met sed commando i wont be vereist "exec",

Thanks in advance ...........
-------------------------------------------------- -----------------------

filter () (
patroon \u003d $ 1
regel \u003d $ 2
for x in $ line; doen
flag \u003d `echo $ x | grep-c $ patroon`

if [$ vlag-eq 1]; dan
return $ vlag
anders
return 0
fi
gedaan
)

# filterKeywords () (

#)


patroon \u003d $ 2
exec <1 dollar
# fileCont \u003d `rdfil $ 1`
linCnt \u003d 1

exitCnt \u003d `lincnt $ 1`
CNT \u003d 0
count \u003d 0
mode \u003d $ 3
# rdfil 1 dollar
terwijl read line; doen

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

status \u003d `echo $ line | grep-c" $ 2 "`
if [$ status-eq 1]; dan
fflag \u003d `filter $ pattern $ line"
wcnt \u003d `echo $ fflag | wc-l`
if [$ wcnt \u003d\u003d 1], vandaar
if [$ exitCnt-ge $ cnt]; dan
if [ "$ mode"! \u003d "2"], vandaar
case $ mode in
"NUM") # Line Number
echo $ linCnt
;;

"FON") # eerste vermelding Line Number
echo $ linCnt
afrit
;;

"FOLN") # eerste vermelding LINE
echo $ regel
afrit
;;

"LN") # alleen regels
echo $ regel
;;

*) # Standaard
echo $ linCnt: $ line
;;
esac
# echo "Hallo!"
anders
echo $ linCnt
fi
# filterKeywords $ line
fi
fi
fi
linCnt \u003d$(($ linCnt + 1))

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

# echo "Bye!"
  #2 (permalink)  
Old 01-05-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.346
Heeft u geprobeerd grep? Dit geeft het nummer van de lijn en de lijn wordt begrensd door een dubbele punt:


Code:
grep -n <pattern> <file>

Om het nummer dat u kunt iets doen als:


Code:
grep -n <pattern> <file>| cut -d: -f1

Check de man pagina van grep en knip voor de gebruikte opties.

Groeten
  #3 (permalink)  
Old 04-29-2009
shivarajM shivarajM is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 12
Arrow Ik heb alleen de eerste verschijning van het patroon?

Citaat:
Oorspronkelijk geplaatst door Franklin52 View Post
Heeft u geprobeerd grep? Dit geeft het nummer van de lijn en de lijn wordt begrensd door een dubbele punt:


Code:
grep -n <pattern> <file>

Om het nummer dat u kunt iets doen als:


Code:
grep -n <pattern> <file>| cut -d: -f1

Check de man pagina van grep en knip voor de gebruikte opties.

Groeten
Ik heb alleen de eerste verschijning van de afgedekte patroon?

help me ......
  #4 (permalink)  
Old 04-29-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.346
Citaat:
Oorspronkelijk geplaatst door shivarajM View Post
Ik heb alleen de eerste verschijning van de afgedekte patroon?

help me ......
Heeft u geprobeerd de -m optie van grep?
  #5 (permalink)  
Old 06-28-2009
Shils shils is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2009
Krabbels: 1
krijgen regelnummer met sed commando

Hoi,

Als het bestand, zoals hieronder is weergegeven, laat het me weten als het commando recht om het als nummer bevat de string - De Aarde met de "\u003d" symbool te krijgen.

Bestandsnaam: example.txt
123 | Aarde | 2009

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

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:33 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0