The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Tilldela o / p av awk till en variabel c2b2 Shell-programmering och Skript 8 04-01-2009 08:50
tilldela ett värde till en variabel Shivdatta Shell-programmering och Skript 10 01-17-2007 07:40
tilldela värde till variabel använda awk Haa Shell-programmering och Skript 4 12-06-2006 11:43
tilldela ett värde till variabel markjason Shell-programmering och Skript 3 10-10-2006 03:05
tilldela variabeln AkumaTay UNIX for Dummies Frågor & Svar 1 05-18-2002 03:11

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 03-19-2009
sunpraveen's Avatar
sunpraveen sunpraveen is offline
Registered User
  
 

Join Date: Jan 2009
Ort: Pruthvi
Inlägg: 85
Question Det går inte att tilldela värde till variabel använda awk coz av whitespace i värde

Unix-experter,

Jag har en fil som nedan, vilket egentligen är ett resultat som erhållits från en SQL-fråga i en Oracle-databas.


Kod:
ID           PROG_NAME      USER_PROG_NAME
-------- --------------- ----------------------------------------
33045      INCOIN             Import Items
42690      POXPOPDOI       Import Standard Purchase Orders

Jag vill tilldela resultatet till variabler. Ungefär:


Kod:

cat filename | tail +4 | while read line ## tail +4 because the first 3 lines are the heading!
do
id=$(echo ${line} | awk '{print $1}')
prog_name=$(echo ${line} | awk '{print $2}')
user_prog_name=$(echo ${line} | awk '{print $3}')



Men jag kan hänföra 3: e kolumnen till rörlig user_prog_name eftersom det har utrymmen.

Hur kan jag lösa detta problem?

TIA,

Hälsningar,

Praveen
  #2 (permalänk)  
Old 03-19-2009
chengamsiva chengamsiva is offline
Registered User
  
 

Join Date: mars 2009
Plats: Bangalore, Indien
Inlägg: 2
Lägg till ytterligare en variabel

Ersätt
din linje: user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3)')

av: user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3 $ 4 $ 5 $ 6)')
(eller)
user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3 "" $ 4 "" 5 $ "" $ 6)') för att ge samma utrymme "mellan $ 3, $ 4, $ 5 och $ 6 när värdena är butiken i variabel.


Jag post här scriptet efter incheckning.
Det körs bra.
koncept:
Här vi gå återstående sista n coloumn och spara den i en variabel.
byebye ..
  #3 (permalänk)  
Old 03-19-2009
sunpraveen's Avatar
sunpraveen sunpraveen is offline
Registered User
  
 

Join Date: Jan 2009
Ort: Pruthvi
Inlägg: 85
Citat:
Ursprungligen postat av chengamsiva View Post
Ersätt
din linje: user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3)')

av: user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3 $ 4 $ 5 $ 6)')
(eller)
user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3 "" $ 4 "" 5 $ "" $ 6)') för att ge samma utrymme "mellan $ 3, $ 4, $ 5 och $ 6 när värdena är butiken i variabel.
Din lösning fungerar om antalet ord i kolumnen USER_PROG_NAME är vet. Men det är INTE.

Den kan innehålla 1, 2 eller 5 ord med mellanslag skilja dem.

Så i princip vad jag vill ha är: från $ 3 till slutet av raden.

Hur exakt kan jag uppnå det?

TIA,

Hälsningar,

Praveen
  #4 (permalänk)  
Old 03-23-2009
chengamsiva chengamsiva is offline
Registered User
  
 

Join Date: mars 2009
Plats: Bangalore, Indien
Inlägg: 2
Hej,
Byt nu

din linje: user_prog_name \u003d $ (echo $ (line) | awk '(print $ 3)')
av: user_prog_name \u003d $ (echo $ (line) | awk '(for (a \u003d 3, a <\u003d NF; a + +) print $ a)')
Closed Thread

Komihåglista

Taggar
awk, whitespace

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 03:50.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0