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
Slet linje i tekstfil Amok UNIX for dummyer Spørgsmål & svar 6 12-16-2008 03:44 PM
Sådan slettes en bestemt tekst uden at åbne filen. stevefox Shell Programmering og Scripting 12 02-21-2008 01:24 PM
Slet første linje fra en tekst-fil? aungomarin Shell Programmering og Scripting 5 05-16-2006 09:42 PM
Sådan slettes væk tekst i en fil? forevercalz Shell Programmering og Scripting 5 01-08-2006 10:28 PM
slette sidste linje fra tekstfil hcclnoodles Shell Programmering og Scripting 4 06-25-2002 09:52 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 Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 27
Overskriv & Slet i Tekstfil

Kære Alle,

Jeg har tekstfil som denne:

Header
Optag 1
Optag 2
.......
Optag n
Hale

Denne linje kode:
awk '(if (NR \u003d\u003d 1) (hovedet \u003d substr ($ 0,1,300);) else (sidste \u003d substr ($ 0,1,300);) END (printf "Header er:%-300 Trailer er:%-300 \ n ", hoved, sidste) 'filename

konverteret Sidehoved og Trailer i en linje, og inden for 300 karakter each.The output er kun én linje.

Nu ved jeg vil overskrive dette en linje ovenfor (Header + Tail) over den første linie af oprindelige fil (original header) og slette Tail ........ Jeg kan kopiere denne header og hale i ny fil og derefter append Optag 1 til Record n til denne nye fil, men det vil medføre for lave resultater ........ så jeg synes bedre til at ajourføre første og sidste linje i denne fil ........... ...... så hvordan kan jeg det?

dvs 1-opdatering headeren med ny linje dvs (header + påhængsvogn)
2-slette hale i den originale fil (kan bruge afskårne hale -1 filnavn?)
  #2 (permalink)  
Old 08-14-2007
lorcan lorcan is offline
Registreret Bruger
  
 

Join Date: May 2007
Posts: 219
Dont bump op dit problem ved at åbne en ny tråd. Du kan løse det i din gamle tråd

Sidehoved og sidefod
  #3 (permalink)  
Old 08-14-2007
lorcan lorcan is offline
Registreret Bruger
  
 

Join Date: May 2007
Posts: 219
Gem outputtet fra awk i en variabel gerne

Code:
New_head=$(awk '{ if ( NR == 1 ) { head=substr($0,1,300);} else { last = substr($0,1,300);}END{printf "Header is : %-300s Trailer is : %-300s\n", head, last}' filename )
Og så kan du gøre noget lignende

Code:
sed -e "1 c\ $New_head" -e '$d' filename
  #4 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 27
Takket ..... jeg prøvede den kode, men sed kommandoen ikke fungerer korrekt, er det at give output:

sed: Kommando forvansket: 1 c \ Header er: Headervalue ....... Trailer er: Trailer værdi .....


Det giver ingen ændring i filen som godt.
  #5 (permalink)  
Old 08-14-2007
33junaid 33junaid is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 27
nogen lykke for mig også?
  #6 (permalink)  
Old 08-14-2007
matrixmadhan matrixmadhan is online now Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Beliggenhed: blad node i B +-træ
Indlæg: 2.952
Der har været en anden tråd som lorcan sagt, og det synes kun at være en fortsættelse af ovennævnte tråd i en ny post.

Du fortsætte med at sende dine spørgsmål i samme tråd, så det ville være lettere at følge op snarere end at starte en ny tråd om det samme spørgsmål.

Antages det, jeg har forstået Deres krav prøve dette,

Code:
awk ' { if ( NR == 1 ) { head=$0 } else { last = $0 } arr[i++]=$0; }END{ printf "Header is : %s Trailer is : %s\n", head, last; for( x=0; x<i-1; x++) { print arr[x] } }' filename
Code:
Header is : header Trailer is : trailer
header
record 1
record 2
record 3
kombineret header og trailer er til rådighed, efterfulgt af, at
header er til rådighed
alle de registre, der vises
trailer registrerer ikke vises

Hvis dette ikke er, hvad du havde bedt om, så lad os vide,
  #7 (permalink)  
Old 08-16-2007
33junaid 33junaid is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 27
ok det er fint, men jeg var bare bekymret over antallet af filer oprettet ........ der er et problem, at jeg får en ekstra linie (tom linie) i slutningen af filen ....... .... hvorfor er der så brug denne kode:


awk '(if (NR \u003d\u003d 1) (hovedet \u003d substr ($ 0,1,149);) else (sidste \u003d substr ($ 0,1,149);) arr [i ++]\u003d$ 0;) END (printf "%-149s% -- 149s \ n ", hoved, sidste, for (x \u003d 1; x <i-1; x++) (print arr[x]) }'file1> fil2


Når jeg åbner fil2, jeg får en ekstra linje .......?
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 PÃ¥
Smilies er PÃ¥
[IMG] koden er PÃ¥
HTML-koden er Slukket
Trackbacks er PÃ¥
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle tidspunkter er GMT -4. Den tid er nu 03:09 PM.


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