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.

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 01-28-2008
smr_rashmy smr_rashmy is offline
Registreret Bruger
  
 

Join Date: Sep 2007
Stillinger: 41
Har du brug for hjælp i awk

Hi Frnds,

Jeg har en tekstfil confdate.txt med følgende format.

From_Date 12-02-2007
To_Date 12-03-2007

Nu har jeg to variabler sige new_todate, new_fromdate i mit shell script, der indeholder to nye datoer, og jeg vil opdatere de datoer i den flade fil svarende til kolonnen ved hjælp awk.

Kan du give mig nogle input om dette?

Thanks in Advance.
- Raja.
  #2 (permalink)  
Old 01-29-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - den studerende
  
 

Join Date: Feb 2007
Location: Danmark / Bangalore / Cochin
Posts: 610
Du kan prøve på denne måde:


Code:
sed -e 's/From_Date\(.*\)/From_Date '$new_fromdat'/'  -e 's/To_Date\(.*\)/To_Date '$new_todat'/'   filename

  #3 (permalink)  
Old 01-29-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - den studerende
  
 

Join Date: Feb 2007
Location: Danmark / Bangalore / Cochin
Posts: 610
Brug awk: $ x og $ y er de nye værdier, der skal fastsættes


Code:
awk -v new_from_dat=$x -v new_to_dat=$y '{if( $1 ~ /From_Date/) print $1" "new_from_dat; if ( $1 ~ /To_Date/) print $1" "new_to_dat; }' file_name

  #4 (permalink)  
Old 01-29-2008
smr_rashmy smr_rashmy is offline
Registreret Bruger
  
 

Join Date: Sep 2007
Stillinger: 41
Vil De venligst forklare mig, både når du finder tiden?

hey sine ikke fungerer ya.

$ Dt \u003d `date-u +% d-% m-% y«
$
$ Echo $ dt
29-01-08
$
$ Cat tst.txt
Dato 12-01-08
$
$ Awk-v dat \u003d $ dt-v '(if ($ 1 ~ / Date /) print $ 1 "" dat;)' tst.txt
Usage: awk [-F fs] [-v Ratingkriterier] [-f Progfile | Program] [Ratingkriterier | Arkiv] ...
$
$ sed -e 's / Dato \ (.* \) / Dato' $ dt '/' tst.txt
Dato 29-01-08
$ Cat tst.txt
Dato 12-01-08
$

Hvad er der galt med min kommando?

Sidst redigeret af smr_rashmy; 01-29-2008 på 01:11 AM..
  #5 (permalink)  
Old 01-29-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - den studerende
  
 

Join Date: Feb 2007
Location: Danmark / Bangalore / Cochin
Posts: 610
Citat:
Oprindeligt Indsendt af smr_rashmy View Post
Vil De venligst forklare mig, både når du finder tiden?

hey sine ikke fungerer ya.

$ Dt \u003d `date-u +% d-% m-% y«
$
$ Echo $ dt
29-01-08
$
$ Cat tst.txt
Dato 12-01-08
$
$ Awk-v dat \u003d $ dt -v '(if ($ 1 ~ / Date /) print $ 1 "" dat;)' tst.txt
Usage: awk [-F fs] [-v Ratingkriterier] [-f Progfile | Program] [Ratingkriterier | Arkiv] ...
$
$ sed -e 's / Dato \ (.* \) / Dato' $ dt '/' tst.txt
Dato 29-01-08
$ Cat tst.txt
Dato 12-01-08
$

Hvad er der galt med min kommando?

Hvorfor du har brugt-v der? Også, hvis du ønsker, at disse ændringer skrevet om til en fil, skal du bruge "> new_filename" i slutningen ...

dvs. sed -e 's / Dato \ (.* \) / Dato' $ dt '/' tst.txt> temp_new_file
  #6 (permalink)  
Old 01-29-2008
smr_rashmy smr_rashmy is offline
Registreret Bruger
  
 

Join Date: Sep 2007
Stillinger: 41
stadig den ikke opdateret frnd,

$ Dt \u003d `date-u +% d-% m-% y«
$
$ Echo $ dt
29-01-08
$
$ Cat tst.txt
Dato 12-01-08

$
$ Awk-v dat \u003d $ dt '(if ($ 1 ~ / Date /) print $ 1 "" dat;)' tst.txt
Dato 29-01-08
$
$
$ cat tst.txt
Dato 12-01-08

$
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 02:40 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