The UNIX and Linux Forums  


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
Newbie hjælpe med New Line & Blank Line kthatch UNIX for dummyer Spørgsmål & svar 5 01-23-2009 04:19 PM
sed: slette regex linje og næste linje, hvis blank one71 Shell Programmering og Scripting 2 09-18-2008 06:53 AM
Hvordan kommer man sidste ikke-tomme linje? tqlam Shell Programmering og Scripting 6 01-17-2008 07:13 PM
Tom linje? varungupta UNIX for Advanced & Ekspertsøgning Brugere 2 09-10-2007 01:52 PM
cant find kommandoen, der returnerer tomme linje jeffersno1 UNIX for dummyer Spørgsmål & svar 2 11-15-2001 04:14 PM

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-18-2009
ddrew78 ddrew78 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 8
Find linje før blank

Hej,

Jeg har to spørgsmål. Først her er den fil den måde er det nu.

someword someword: 1
nye ord nye ord abcd
someword someword: 10
nye ord nye ord abcd
thisis whatIneed: 3


someword someword: 5
nye ord nye ord abcd

Jeg har brug for at få den linje før 2 blanktegn og flytte den til en anden fil. Jeg har prøvet at bruge sed, Men bliver ved med at få fejlmeddelelser. Ligeledes kan der være ingen, en eller flere forekomster af dette inden for den fil.

Jeg bør nok også nævne, at dette er en del af en større perl script jeg arbejder på. Jeg har alt andet gjort, filen ovenfor er faktisk genereres af scriptet. Jeg har også alt under det komplette, men jeg er helt i stå på dette punkt.

Enhver hjælpe med enten ville blive værdsat.

Sidst redigeret af ddrew78; 03-18-2009 på 07:43 PM..
  #2 (permalink)  
Old 03-18-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Posts: 1.089
nogenlunde tænkte nedenfor håber kan hjælpe dig med nogle


Code:
open $fh,"<","yourfile";
open $out,">>","youroutfile";
undef $/;
$str=<$fh>;
print $out split(/\n^$\n^$\n/s,$str,2)[0];

  #3 (permalink)  
Old 03-18-2009
aaaaargh aaaaargh is offline
Registreret Bruger
  
 

Join Date: Aug 2006
Stillinger: 20
Her er mine, grim, men skulle kunne gøre det

(ikke testet)


Code:
awk 'BEGIN{i=0}
  { content[NR]=$0; if (($0=="")) {b[i]=NR;i++} j++;} 
  END 
 { 
   for (x=0;x<=b[0];x++) 
  {print content[x] > "file1" } for (x=b[1];x<=j; x++) { print content[x] > "file2"}   
}'  /var/tmp/file

  #4 (permalink)  
Old 03-19-2009
ddrew78 ddrew78 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 8
Re: Find linje før blank

sommeren cherry,

her er, hvad jeg endte med i mit script:

#! / usr / bin /perl

open $ fh ,"<"," myfile ";
åbne $ out ,">>"," mynewfile ";
undef $ /;
$ str \u003d <$ fh>;
print $ out split (/ \ n ^ $ \ n ^ $ \ n / s, $ str, 2) [0];

Jeg fik fejlmeddelelsen nedenfor. Nogen idéer? Jeg sætter pris på at få hjælp.

syntaksfejl på ansipre2 linje 7, i nærheden ") ["
Udførelse af ansipre2 afbrudt på grund af udarbejdelse fejl.
  #5 (permalink)  
Old 03-19-2009
ddrew78 ddrew78 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 8
Re: Find linje før blank

Citat:
Oprindeligt Indsendt af aaaaargh View Post
Her er mine, grim, men skulle kunne gøre det

(ikke testet)


Code:
awk 'BEGIN{i=0}
  { content[NR]=$0; if (($0=="")) {b[i]=NR;i++} j++;} 
  END 
 { 
   for (x=0;x<=b[0];x++) 
  {print content[x] > "file1" } for (x=b[1];x<=j; x++) { print content[x] > "file2"}   
}'  /var/tmp/file


Tak for svaret. Desværre jeg er ny her og kan ikke finde ud af, hvordan man gennemfører dette i mit script. Nedenfor er de to sidste linjer i script til at få den fil jeg havde ovenfor.

system "dos2unix ansi3> ansi7";
system "MV ansi7 ansi3";

Tak igen for enhver hjælp.
  #6 (permalink)  
Old 03-19-2009
rikxik's Avatar
rikxik rikxik is offline
Registreret Bruger
  
 

Join Date: Dec 2007
Stillinger: 250

Code:
$ cat sd
sed -n '/^$/!{
h
}
/^$/{
N
/^\n$/ {
x
p
q
}
}' fl
$
$ cat fl
someword someword:1
new-word new-word abcd
someword someword:10
new-word new-word abcd
thisis whatIneed:3


someword someword:5
new-word new-word abcd
$
$ sd
thisis whatIneed:3

Vær forsigtig, når du skære indsæt denne - Der må ikke være nogen efterfølgende mellemrum.

Sidst redigeret af rikxik; 03-19-2009 på 10:49 PM..
  #7 (permalink)  
Old 03-20-2009
ddrew78 ddrew78 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 8
Tak til alle som har hjulpet mig på denne. Efter megen smerte jeg besluttede at gå en anden vej og i stedet vedlagt den repetitive string til det foregående linje. Meddelt, som resulterede i et par ekstra linjer kode, men hvad dælen. Bare en FYI, nedenfor, er den kode, der endte med at give mig linjer Jeg var oprindeligt søger.



åben (FILE7, "> file7");
åben (MYINPUTFILE, "fil3");

while (<MYINPUTFILE>) (
chomp;
min $ someword \u003d "";
min $ nye ord \u003d "";
if (/ ^ someword /) ($ someword \u003d $ _; samtidig (<MYINPUTFILE>) (chomp;
if (/ ^ nye ord /) (
print FILE7 "$ someword $ _";
print FILE7 "\ n";)
sidste;
)
)
)
system "MV file7 fil3";
system "dos2unix fil3> file7";
system "MV file7 fil3";
system "kat fil3 | cut-d" "-f1-2>> file0 ';
system "sortere-n file0> file1";
system "MV file1 file0";
system "sortere file0 | Entydige-u> file1";
system "MV file1 file0";
Closed Thread

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