The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Har du brug for hjælp i sed kommando (tilføje en tom linje btw hver blok genereret af mønster) frozensmilz Shell Programmering og Scripting 2 01-08-2009 12:12 AM
foretage flere linje, der indeholder et mønster i enkelt linje VTAWKVT Shell Programmering og Scripting 13 12-04-2008 06:40 PM
kommentar / slette et bestemt mønster fra anden linje i matchende mønster imas Shell Programmering og Scripting 4 10-13-2008 02:37 AM
Udskrive mønster i tråd FK_Daemon Shell Programmering og Scripting 3 11-23-2007 04:27 PM
sed - Erstat Line, som indeholder de Mønster match med en ny linje kousikan Shell Programmering og Scripting 2 03-24-2007 07:24 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 01-05-2009
frozensmilz's Avatar
frozensmilz frozensmilz is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Stillinger: 28
Har du brug for hjælp i sed kommando [trykning et mønster + sin linje ingen eller linje ikke alene]

Hej venner,

Kun for ganske nylig i gang med at lære sed kommando ... en jeg fandt, at sed er hurtigere at finde de mønstre, end nogle af mine scripts, der bruger grep at tjekke Patten inde i en fil ved hjælp af linje for linje søgemetode, som er tidskrævende.

Nedenstående script "strMatch" er en af dem, som jeg bruger til at søge efter et mønster. Når mønsteret er fundet det vil vise mønster & linjenummeret eller linjenummeret alene som vist nedenfor.

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

> Input
strMatch Sample.cpp "mønster STRING" 2
> Output
5

Mange af mine andre script er begyndt at bruge dette script, og den afhængighed at dette script er næsten blev sammensat således, at den nye scripts, der anvender strMatch direkte eller indirekte til forskellige formål er langsom i udførelsen. Jeg har bemærket, at følgende sed kommando kan bruges til at justere strMatch til at øge søgningen hastighed ...

sed '/ Mønster STRING / p' Sample.cpp

Men jeg har brug for at få det linjenummer også gerne mine tidligere strMatch .... Er der nogen måde at udskrive output som nedenfor

Output 1 [Linjenummer & mønster]
5 PATTERN STRING

Output 2 [Linjenummer hvor mønster blev fundet]
5

Fordi nogle af mine scripts bruger kun disse linjenummer ..... Kindly hjælpe med at gøre strMatch script hurtigt .... formålet med strMatch er at søge efter et mønster og returnere det mønster, sted eller det mønster, sammen med placeringen ..... Nedenfor er faktisk strMatch script ...

Der er et særligt tilfælde håndtering af "omfatte" nøgleordet ..... Jeg er ikke i stand til at finde nogen alternativ til "exec" kommando til at videregive de filindhold til en variabel som sådan (med korrekt tilpasning )..... og en eller anden måde, når jeg søger efter medtage søgeord ... det vil exec på alle filerne i mappen ....... jeg mener med sed kommando jeg plejer være der kræver "exec",

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

filter () (
mønster \u003d $ 1
line \u003d $ 2
for x i $ line; do
flag \u003d `echo $ x | grep-c $ mønster«

if [$ flag-eq 1]; derefter
return $ flag
anden
tilbagevenden 0
fi
gjort
)

# filterKeywords () (

#)


mønster \u003d $ 2
exec <$ 1
# fileCont \u003d `rdfil $ 1`
linCnt \u003d 1

exitCnt \u003d `lincnt $ 1`
cnt \u003d 0
count \u003d 0
mode \u003d $ 3
# rdfil $ 1
mens læse linje gøre

if [ "$ 2" \u003d\u003d "omfatte"]; derefter
quitCon \u003d `echo $ line | grep-c "//-------------------------"`
if [$ quitCon-eq 1]; derefter
tælle \u003d$(($ count + 1))
if [$ count-eq 2]; derefter
brække
fi
fi
fi

status \u003d `echo $ line | grep-c" $ 2 "`
if [$ status-eq 1]; derefter
fflag \u003d `filter $ mønster $ line«
wcnt \u003d `echo $ fflag | wc-l`
if [$ wcnt \u003d\u003d 1]; derefter
if [$ exitCnt-ge $ cnt]; derefter
if [ "$ mode"! \u003d "2"]; derefter
tilfælde $ mode i
"NUM") # LINE NUMBER
echo $ linCnt
;;

"FON") # første forekomst LINE NUMBER
echo $ linCnt
exit
;;

"FOLN") # første forekomst LINE
echo $ linje
exit
;;

"Ln") # kun linjer
echo $ linje
;;

*) # DEFAULT
echo $ linCnt: $ line
;;
ESAC
# echo "Hej"
anden
echo $ linCnt
fi
# filterKeywords $ line
fi
fi
fi
linCnt \u003d$(($ linCnt + 1))

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

# echo "Farvel!"
 

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:00 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0