The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Newbie hjelp med New Line & Tom linje kthatch UNIX for Dummies Spørsmål og svar 5 01-23-2009 04:19
sed: slette regex og neste linje hvis blank one71 Shell programmering og Skripting 2 09-18-2008 06:53
Hvordan få siste ikke-tomme linjen? tqlam Shell programmering og Skripting 6 01-17-2008 07:13
Blank line? varungupta UNIX for Advanced & ekspertbrukere 2 09-10-2007 01:52
skrånende finner kommandoen som returnerer blank linje jeffersno1 UNIX for Dummies Spørsmål og svar 2 11-15-2001 04:14

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øk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 03-18-2009
ddrew78 ddrew78 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 8
Finn linje før blank

Hallo,

Jeg har faktisk to sakene. Først, her er filen slik den er nå.

someword someword: 1
nye ord, nye ord abcd
someword someword: 10
nye ord, nye ord abcd
Det er whatIneed: 3


someword someword: 5
nye ord, nye ord abcd

Jeg trenger å få linje før 2 blanks og flytte den til en annen fil. Jeg har prøvd å bruke sed, Men får stadig feilmeldinger. Dessuten kan det finnes ingen, en eller flere forekomster av denne innenfor filen.

Jeg bør nok også nevne at dette er en del av et større perl Skriptet jeg jobber på. Jeg har alt gjort det, filen ovenfor er faktisk genereres av skriptet. Jeg har alt under den komplette, men er helt fastlåst på dette punktet.

Hjelp med enten ville være verdsatt.

Sist endret av ddrew78; 03-18-2009 på 07:43..
  #2 (permalink)  
Old 03-18-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: juni 2007
Sted: Beijing Kina
Innlegg: 1088
omtrent tenkt nedenfor håper kan hjelpe deg litt

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
Registrert bruker
  
 

Bli Dato: Aug 2006
Innlegg: 20
Her er min, stygge men bør gjøre triks

(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
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 8
Re: Finn linjen før blank

Sommeren kirsebær,

her er det jeg endte opp med i mitt script:

#! / usr / bin /perl

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

Jeg fikk feilmeldingen nedenfor. Noen ideer? Jeg setter pris på hjelp.

syntaksfeil på ansipre2 linje 7, i nærheten av ") ["
Utførelse av ansipre2 avbrutt grunnet kompilering feil.
  #5 (permalink)  
Old 03-19-2009
ddrew78 ddrew78 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 8
Re: Finn linjen før blank

Sitat:
Originally Posted by aaaaargh View Post
Her er min, stygge men bør gjøre triks

(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


Takk for svar. Dessverre Jeg er ny i dette og kan ikke finne ut hvordan man skal implementere dette i min skriptet. Nedenfor er de to siste linjene i skriptet for å hente fila jeg hadde ovenfor.

system "dos2unix ansi3> ansi7";
system "mv ansi7 ansi3";

Takk for hjelp.
  #6 (permalink)  
Old 03-19-2009
rikxik's Avatar
rikxik rikxik is offline
Registrert bruker
  
 

Bli Dato: desember 2007
Innlegg: 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 forsiktig når du klippe lime dette - det må ikke eventuelle etterfølgende mellomrom.

Sist endret av rikxik; 03-19-2009 på 10:49..
  #7 (permalink)  
Old 03-20-2009
ddrew78 ddrew78 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 8
Takk til alle som har hjulpet meg på denne. Etter mye smerte jeg bestemte meg for å gå en annen rute og i stedet legges gjentagende streng til den forrige linje. Tildelt, som resulterte i noen ekstra linjer med kode, men hva pokker. Bare en info nedenfor er koden som endte opp med å gi meg linjene jeg opprinnelig var ute etter.



åpen (FILE7, "> file7");
åpen (MYINPUTFILE, "file3");

while (<MYINPUTFILE>) (
chomp;
my $ someword \u003d "";
my $ nye ord \u003d "";
if (/ ^ someword /) ($ someword \u003d $ _; mens (<MYINPUTFILE>) (chomp;
if (/ ^ nye ord /) (
print FILE7 "$ someword $ _";
print FILE7 "\ n";)
sist;
)
)
)
system "mv file7 file3";
system "dos2unix file3> file7";
system "mv file7 file3";
system "katt file3 | cut-d" "-f1-2>> file0 ';
system "sort-n file0> file1";
system "mv file1 file0";
system "sortere file0 | Unike-u> file1";
system "mv file1 file0";
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 05:18.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0