The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
hogy hogyan file mutató egy sor, a C user_prady Magas szintű Programozás 7 03-27-2008 12:32 AM
visszatérés az előző user_prady Shell programozás és Scripting 12 12-18-2007 07:37 AM
hogy hogyan kell menni a korábbi sorban vim useless79 A UNIX a fejlett és szakértői Felhasználók 2 09-16-2007 09:10 AM
Keressen és beolvasásának előző fájl paulsew Shell programozás és Scripting 2 02-23-2007 08:04 AM
Előző napi dátumot Perl? rajus19 Shell programozás és Scripting 4 07-18-2006 01:40 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 Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 01-24-2008
tqlam tqlam is offline
Regisztrált felhasználó
  
 

Join Date: Jul 2004
Hozzászólások: 12
Perl, hogy hogyan mutató az előző tétel egy txt fájlt?

Van egy szöveges fájl, amely blokkolja a szöveget. Minden blokk kezdődik # # # és végződik End_ # # #.
Írtam perl script keresni egy stringet, 2. sor (nem érdekelnek a # # #) az egyes blokk
ha párosulnia kell nyomtatni, hogy az egész blokk. Szerint a bemeneti fájlt alatt, akkor ki fogja írni blokkok # 02, # 04, # 05.
Itt van a kérdés, nincs párja a probléma SEARCH_STR, de ha egyszer egyeztetett, hogyan tudom mozgatni vissza az előző vonalakat?
például a blokk # 02, kiegyenlített a 3. sorban, de szükségem van a nyomtatott sorok 1 & 2.

Köszi előre is minden segítséget!

Az enyém:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
#! / 46020/local/bin /perl -w
#
if ($ # ARGV! \u003d 0) (
print "Meg kell adnia a keresési feltételeknek. \ n";
exit;
)
my $ query \u003d $ ARGV [0];
my $ input \u003d "/ mypath / inputFILE.txt";
my $ line;
my $ tag \u003d 0;
my @ results \u003d ();

open (FILE, "<$ INPUT") or die "Cannot open '$ INPUT' file: $!";
while ($ line \u003d <file>) (
next if ($ line \u003d ~ / ^ # [0-9] [0-9] .* - / | | $ line \u003d ~ / ^ \ s *$/);
if ($ line \u003d ~ / $ query / i) (
$ tag \u003d 1;
)
if ($ line \u003d ~ / ^ End_ # / & & $ tag \u003d\u003d 1) (
push (@ eredmények, $ line) if ($ tag \u003d\u003d 1);
$ tag \u003d 0;
)
push (@ eredmények, $ line) if ($ tag \u003d\u003d 1);
)
Close (file);
print "@ eredményt \ n";
exit;


Bemeneti_fájl:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
# 01 - block rajthoz itt
some text here
more text here
több horogsor
több horogsor
több horogsor
End_ # 01

# 02 - blokk rajthoz itt
some text here
ez a sor tartalmazza a SEARCH_STR és valami
több horogsor
több horogsor
End_ # 02

# 03 - blokk rajthoz itt
some text here
more text here
több horogsor
több horogsor
több horogsor
End_ # 03

# 04 - blokk rajthoz itt
some text here
több horogsor
több horogsor
A SEARCH_STR itt van, és valami
some text here
több horogsor
több horogsor
több horogsor
End_ # 04

# 05 - block rajthoz itt
some text here
több horogsor
A SEARCH_STR itt van, és valami
több horogsor
End_ # 05


# 06 - blokk rajthoz itt
some text here
more text here
több horogsor
több horogsor
több horogsor
End_ # 06
  #2 (permalink)  
Old 01-24-2008
Smiling Dragon's Avatar
Mosolygó Dragon Smiling Dragon is offline Forum Advisor  
Rendezetlen Felhasználó
  
 

Join Date: Nov 2007
Helyszín: Új-Zéland
Posts: 922
Post

Próbáljon ki valami ilyesmi:

Kód:
#!/46020/local/bin/perl -w
$/="\n\n";
while (<STDIN>) { if (/$ARGV[0]/) { print $_ }}

. / scriptname.pl SEARCH_STR </ mypath / inputFILE.txt
  #3 (permalink)  
Old 01-24-2008
KevinADC KevinADC is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 731
Ha Smiling_Dragons javaslat nem működik, akkor használhatja a Tie:: File modul, mely lehetővé teszi, hogy írni és olvasni egy fájlt, mint egy perl tömbben. Lásd a Tie:: File dokumentációját használat részleteket. Ez is egy alap modult, így kellett volna telepíteni. Ha elakad, tegye vissza.
  #4 (permalink)  
Old 01-25-2008
tqlam tqlam is offline
Regisztrált felhasználó
  
 

Join Date: Jul 2004
Hozzászólások: 12
Csak azt szeretném tisztázni szerint a inputFILE.txt, amikor futtatja a szkriptet a SEARC_STR kiírja # 02, # 04, # 05 blokkokat. pl scriptname keresés.
Kódomat képes nyomtatni kiegyenlített plusz a következő sorokat akár End_ # # #, de kell egy módja annak, hogy nyomtatott sorok előtt kiegyenlített az adott blokk.

Köszönöm.
  #5 (permalink)  
Old 01-25-2008
KevinADC KevinADC is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 731
Igen, azt hiszem mindketten megértették, hogy a követelmény, és mindkét javaslatokat lehet használni arra, amit akar. Ha ismeri a hurok révén perl tömbök használata indexekkel: $ array [n] akkor használja a Tie:: File lesz szép egyenes továbbít, ha elolvassa a dokumentációt.

S_M javaslata beolvassa a fájl darabokban, nem sorról sorra, és úgy néz ki mint ez kellet volna dolgozik bár az utolsó mérkőzés meghiúsulhat, ha nem két újsor végén a fájlt. Önnek meg kell próbálni, és megnézni, vagy talán tudja állapítani, hogy fel.
  #6 (permalink)  
Old 01-27-2008
Smiling Dragon's Avatar
Mosolygó Dragon Smiling Dragon is offline Forum Advisor  
Rendezetlen Felhasználó
  
 

Join Date: Nov 2007
Helyszín: Új-Zéland
Posts: 922
Idézet:
Originally Posted by KevinADC View Post
S_M javaslata beolvassa a fájl darabokban, nem sorról sorra, és úgy néz ki mint ez kellet volna dolgozik bár az utolsó mérkőzés meghiúsulhat, ha nem két újsor végén a fájlt. Önnek meg kell próbálni, és megnézni, vagy talán tudja állapítani, hogy fel.
Azt hiszem, rendben lesz a normál file felmondás - Próbáltam ez-ra egy új sor, és vizsgálni rendben de én havn't köszönet illeti tesztelés bele az biztos
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 03:59 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0