![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Behöver du hjälp i awk
Hej Frnds,
Jag har en textfil confdate.txt med följande format. From_Date 12-02-2007 To_Date 12-03-2007 Nu har jag två variabler säga new_todate, new_fromdate i mitt shell script som innehåller två nya datum, och jag vill uppdatera datum i lägenheten fil som motsvarar kolumnen använda awk. Kan du ge mig lite input om detta? Tack på förhand. - Raja. |
|
||||
|
Använda awk: $ x och $ y är de nya värdena som skall fastställas
Kod:
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
|
|
||||
|
Kan ni förklara mig både när du hittar Temne?
hej det fungerar inte dig. $ Dt \u003d `date-u +% d-% m-% Y" $ $ Echo $ dt 29-01-08 $ $ Cat tst.txt Datum 12-01-08 $ $ Awk-v dat \u003d $ DT-v '(if ($ 1 ~ / Datum /) print $ 1 "" dat;) "tst.txt Användning: awk [F fs] [-v Uppdrag] [-f Progfile | Program] [Kontraktsöverlåtelse | Arkiv] ... $ $ sed -e 's / Datum \ (.* \) / Datum' $ dt "/" tst.txt Datum 29-01-08 $ Cat tst.txt Datum 12-01-08 $ vad är det för fel på min? Senast redigerad av smr_rashmy; 01-29-2008 vid 01:11.. |
|
||||
|
Citat:
Varför du har använt-v där? Dessutom, om du vill att dessa ändringar skrivs till en fil måste du använda "> new_filename" i slutet ... dvs sed -e 's / Datum \ (.* \) / Datum' $ dt "/" tst.txt> temp_new_file |
|
||||
|
fortfarande inte uppdaterad frnd,
$ Dt \u003d `date-u +% d-% m-% Y" $ $ Echo $ dt 29-01-08 $ $ Cat tst.txt Datum 12-01-08 $ $ Awk-v dat \u003d $ dt '(if ($ 1 ~ / Datum /) print $ 1 "" dat;) "tst.txt Datum 29-01-08 $ $ $ katt tst.txt Datum 12-01-08 $ |