LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Reading from file... (https://www.linuxquestions.org/questions/programming-9/reading-from-file-554712/)

jimyg10 05-17-2007 03:35 PM

Reading from file...
 
i want to read from a file and for every word to do a command.. I use a for loop inside awk for reading all the words inside the file.. Then i want to use grep, but it's a problem because the exit of awk are many results and not one..

for example if file has:
aaaa bbbb cccc dddd eeee
i want to execute:
grep aaaa, grep bbbb...e.t.c

Any idea??

ghostdog74 05-17-2007 05:49 PM

Quote:

Originally Posted by jimyg10
i want to read from a file and for every word to do a command.. I use a for loop inside awk for reading all the words inside the file.. Then i want to use grep, but it's a problem because the exit of awk are many results and not one..

for example if file has:
aaaa bbbb cccc dddd eeee
i want to execute:
grep aaaa, grep bbbb...e.t.c

Any idea??
I don't know if i was clear enough...

you don't need to use a for loop to read records from a file in awk. from what i see your requirement, you can do:
Code:

egrep "aaaa|bbbb" file
will be good if you post your code.(samples of input and output format as well if possible)

jimyg10 05-17-2007 06:00 PM

Basicly, what i want to do is: i have a file (users.txt) that has the words like this:
aaa bbb ccc ddd eee...
i want the script to take each word and do a command..

I used the command awk to read each word from the file...But then??

jschiwal 05-17-2007 06:08 PM

You don't need to use awk for this. You could simply use:
for user in $(cat users.txt); do
...
done

PTrenholme 05-17-2007 06:16 PM

Have you considered the who command?

Also, look at the system() function built in to gawk.

jimyg10 05-17-2007 06:20 PM

Quote:

Originally Posted by jschiwal
You don't need to use awk for this. You could simply use:
for user in $(cat users.txt); do
...
done

thnx a lot..

PTrenholme 05-17-2007 06:23 PM

Read info who and note the discussion re utmp and wtmp.

ghostdog74 05-17-2007 06:43 PM

Quote:

Originally Posted by jimyg10
Basicly, what i want to do is: i have a file (.txt) that has the names of all the users like this:
aaa bbb ccc ddd eee...
i want the script to take each user and show if he is online or not and the last time he logged in...

I used the command awk to read each user from the file...But then??

Code:

who | awk 'BEGIN {
            getline line<"file" #assume only 1 line
            n=split(line,user)             
          }
END{
  for (i=1;i<n;i++) {
    if ( $1 == user[i]) {
        print $1 "  logged in"
        break
    }
  }
}



All times are GMT -5. The time now is 07:48 AM.