08-21-2008
Passing a variable to awk while in a shell for loop
I am a newbie to awk and c programming, however am not a unix newbie. However, I do need help with a kshell script I am writing. It is almost complete, the last step is killing me. Any help would be greatly appreciated. What I am trying to do is cat a text file that has usernames. Then, using the for loop I want to extract out lines from a second file where the name exist in a record using awk. There could be multiple records with the username. The second file has variable length records. I only need the last field from the second file and the username.
Here are examples of the two files.
users.txt ------- secondfile.txt
user1 -------- user3 user1 user2 /mydir/next/firstdir
user2 -------- user1 /mydir/next/seconddir
user3 -------- user2 user3 /mydir/next/thirdir
Here is my script:
for i in cat `users.txt`
do
awk -v t01=$i 't01 { print t01 " " $NF }' secondfile.txt >> thirdfile.txt
done
Initially I tried '/t01/ { print t01 " " $NF }' but found that awk does not like variables within the / /. The problem with the above syntax is that for every record in users.txt, I get a print of the last field for every record in secondfile.txt. Yet, when I use awk at the command line and use /user1/ I get only the records from secondfile.txt that I would expect.
Hope this explanation is clear. Your help is greatly appreciated.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi;
i have a file containing lines like:
1|1069108123|96393669788|00963215755711|2|0|941||;serv:Pps6aSyria;first:0;bear
i want to extract the second, third and fourth record of each line and store it in a file ";" seperated
this is what i wrote
while read line
do
... (3 Replies)
Discussion started by: bcheaib
3 Replies
2. UNIX for Dummies Questions & Answers
After searching through books and the internet for days I can't seem to find an example of this.
I'm trying to pass a variable from a for loop into nawk but can't seem to get all the syntax right.
my script (thanks to anbu23 for nawk help) is this:
for customers in `cat customers.txt`
do... (3 Replies)
Discussion started by: Ant1815
3 Replies
3. Shell Programming and Scripting
Hi,
I have a text file with data in that I wish to extract, assign to a variable and process through a loop.
Kind of the process that I am after:
1: Grep the text file for the values.
Currently using:
cat /root/test.txt | grep TESTING= | awk -F"=" '{ a = $2 } {print a}' | sort -u
... (0 Replies)
Discussion started by: Spoonless
0 Replies
4. UNIX for Dummies Questions & Answers
Hello,
I have a file with 4 columns.
An arbitrary example is shown below:
a Tp 10 xyz
b Tq 8 abc
c Tp 99 pqr
d Tp 44 rst
e Tr 98 efg
Based on the values in col 2 and col 3, I will execute another program.
I have been running this:... (5 Replies)
Discussion started by: Gussifinknottle
5 Replies
5. Shell Programming and Scripting
I want to pass a shell variable to awk script :
# cat file
PSAPSR3 3722000 91989.25 2 98
PSAPSR7 1562000 77000.1875 5 95
PSAPUNDO 92000 4087.5625 4 96
#... (8 Replies)
Discussion started by: Reboot
8 Replies
6. Shell Programming and Scripting
consider the script below
sh /opt/hqe/hqapi1-client-5.0.0/bin/hqapi.sh alert list --host=localhost --port=7443 --user=hqadmin --password=hqadmin --secure=true >/tmp/alerts.xml
awk -F'' '{for(i=1;i<=NF;i++){
if($i=="Alert id") {
if(id!="")
if(dt!=""){
cmd="sh someScript.sh... (2 Replies)
Discussion started by: vivek d r
2 Replies
7. Shell Programming and Scripting
I am writing a script where I need awk to test if two columns are the same and shell to do something if they are or are not.
Here is the code I'm working with:
@ test = 0
...
test = `awk '{if($1!=$2) print 1; else print 0}' time_test.tmp`
#time_test.tmp holds two values separated by a space... (3 Replies)
Discussion started by: Malavin
3 Replies
8. Shell Programming and Scripting
Hi All,
I am new to AWK programming. I have the following for loop in my awk program.
cat printhtml.awk:
BEGIN
-------- <some code here>
END{
----------<some code here>
for(N=0; N<H; N++)
{
for(M=5; M<D; M++) print "\t" D "";
}
-----
}
... (2 Replies)
Discussion started by: ctrld
2 Replies
9. UNIX for Dummies Questions & Answers
Hello All,
May i please why my shell variable is not getting passed into awk script.
#!/bin/bash -vx
i="1EB07C50"
/bin/awk -v ID="$i" '/ID/ {match($0,/ID/);print substr($0,RSTART,RLENGTH)}' /var/log/ScriptLogs/keys.13556.txt
Thank you. (1 Reply)
Discussion started by: Ariean
1 Replies
10. Shell Programming and Scripting
I wrote this script which works well when I manually input 55518622 and 1
but I need this script to be generic and loop over the following table
awk '$4>(55518622-500000) && $4<(55518622+500000)' chr1_GEN2bim | awk 'BEGIN {min=1000000000; max=0;}; {\
if($4<min && $4 != "") min = $4; if($4>max... (8 Replies)
Discussion started by: fat
8 Replies
LEARN ABOUT REDHAT
revoke
REVOKE(7) SQL Commands REVOKE(7)
NAME
REVOKE - remove access privileges
SYNOPSIS
REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
REVOKE { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE dbname [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
REVOKE { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTION funcname ([type, ...]) [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
REVOKE { USAGE | ALL [ PRIVILEGES ] }
ON LANGUAGE langname [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
REVOKE { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schemaname [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
DESCRIPTION
REVOKE allows the creator of an object to revoke previously granted permissions from one or more users or groups of users. The key word
PUBLIC refers to the implicitly defined group of all users.
Note that any particular user will have the sum of privileges granted directly to him, privileges granted to any group he is presently a
member of, and privileges granted to PUBLIC. Thus, for example, revoking SELECT privilege from PUBLIC does not necessarily mean that all
users have lost SELECT privilege on the object: those who have it granted directly or via a group will still have it.
See the description of the GRANT [grant(7)] command for the meaning of the privilege types.
NOTES
Use psql(1)'s z command to display the privileges granted on existing objects. See also GRANT [grant(7)] for information about the format.
EXAMPLES
Revoke insert privilege for the public on table films:
REVOKE INSERT ON films FROM PUBLIC;
Revoke all privileges from user manuel on view kinds:
REVOKE ALL PRIVILEGES ON kinds FROM manuel;
COMPATIBILITY
SQL92
The compatibility notes of the GRANT [grant(7)] command apply analogously to REVOKE. The syntax summary is:
REVOKE [ GRANT OPTION FOR ] { SELECT | INSERT | UPDATE | DELETE | REFERENCES }
ON object [ ( column [, ...] ) ]
FROM { PUBLIC | username [, ...] }
{ RESTRICT | CASCADE }
If user1 gives a privilege WITH GRANT OPTION to user2, and user2 gives it to user3 then user1 can revoke this privilege in cascade using
the CASCADE keyword. If user1 gives a privilege WITH GRANT OPTION to user2, and user2 gives it to user3, then if user1 tries to revoke
this privilege it fails if he specifies the RESTRICT keyword.
SEE ALSO
GRANT [grant(7)]
SQL - Language Statements 2002-11-22 REVOKE(7)