The UNIX and Linux Forums  


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
cat file1 lese linje per linje deretter grep-A 15 linjer ned i fileb irongeekio Shell programmering og Skripting 6 01-28-2009 06:30
Begynte linjene i revers. føye til linje 1 til 2. dwalley Shell programmering og Skripting 7 08-04-2008 08:11
Legge linjen til hver linje og få antall linjer chiru_h Shell programmering og Skripting 2 03-25-2008 10:19
å gjøre 2 linjer i 1 linje bruke awk cdfd123 Shell programmering og Skripting 2 10-03-2007 08:44
Legger linje / linjer med sed nir_s Shell programmering og Skripting 28 07-24-2005 03:36

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 04-22-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Awk 2 linjer 1 linje

Inndatafilen:

Sitat:
Inngang:
host1 SERVER1
database1 5
host2 server2
database2 5
host3 server3
database3 5
Nødvendig Resultat:
Sitat:
host1 SERVER1 database1 5
host2 server2 database2 5
host3 server3 database3 5
Jeg har prøvd følgende kode:

Code:
nawk '{for(i=1; i<=NR; i+2) {print NR,$0; getline ;print \n $0; NR=NR+2}}' temp

Men ikke gir rett resultat.
Hjelp er verdsatt
  #2 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131

Code:
paste -d' ' - - < temp
OR
nawk 'ORS=(FNR%2)?FS:RS' temp

  #3 (permalink)  
Old 04-22-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by vgersh99 View Post
Code:
paste -d' ' - - < temp
OR
nawk 'ORS=(FNR%2)?FS:RS' temp
Takk pro


Code:
paste -d' ' - - < temp
nawk 'ORS=(FNR%2)?FS:RS' temp

Ville sette pris på om du kan forklare dette.
  #4 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131
Sitat:
Originally Posted by zenith View Post
Takk pro


Code:
paste -d' ' - - < temp
nawk 'ORS=(FNR%2)?FS:RS' temp

Ville sette pris på om du kan forklare dette.
Du kan lese man-sidene for "lim" for å gi deg et høyt nivå av hva det gjør - resten skal være enkelt.
awk:

Code:
(FNR%2) - get a 'modulo' of the current file RecordNumber (FNR) over 2 - every OTHER line.
If the mod is NON-zero, return 'FS' (FieldSeparator)
If the mod is zero, return RecordSeparator (RS)
ORS= - assign the returned value to the OutputRecordSeparator (ORS)

In other words...
If we're dealing with the ODD record/line numbers (1,3,5,7 etc), print the line and FS (separate the next line)
If we're dealing with the EVEN record/line numbers (2.4.6.8 etc), print the line and the ORS (which is by default is newLine).

  #5 (permalink)  
Old 04-22-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by vgersh99 View Post
Du kan lese man-sidene for "lim" for å gi deg et høyt nivå av hva det gjør - resten skal være enkelt.
awk:

Code:
(FNR%2) - get a 'modulo' of the current file RecordNumber (FNR) over 2 - every OTHER line.
If the mod is NON-zero, return 'FS' (FieldSeparator)
If the mod is zero, return RecordSeparator (RS)
ORS= - assign the returned value to the OutputRecordSeparator (ORS)
 
In other words...
If we're dealing with the ODD record/line numbers (1,3,5,7 etc), print the line and FS (separate the next line)
If we're dealing with the EVEN record/line numbers (2.4.6.8 etc), print the line and the ORS (which is by default is newLine).
Takk Sir,

Mindre endringer, trenger output kommadelte.

Jeg har prøvd dette men har syntaksfeil.


Code:
nawk '{ORS=(FNR%2)?FS:RS}; OFS=,' temp

Takker for hjelpen
  #6 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131

Code:
nawk -F, 'ORS=(FNR%2)?FS:RS' temp

  #7 (permalink)  
Old 04-22-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Awk med rare mellomrom (output fra Sybase server)

Sitat:
Originally Posted by vgersh99 View Post
Code:
nawk -F, 'ORS=(FNR%2)?FS:RS' temp
Når jeg limt inndatafilen på nettsiden. Jeg har noen rare steder, men når jeg limt Jeg tror nettsted fjernet den. dermed er jeg knytter det.


Requried Resultat
host1, SERVER1, database1, 5
host2, server2, database2, 5
host3, server3, database3, 5

Resultat Jeg får også vedlagt

Setter pris på hjelp
Vedlagte filer
File Type: txt inputfile.txt (375 Bytes, 21 visninger)
File Type: txt output_i_am_getting.txt (363 Bytes, 19 visninger)
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 07:34.


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