Need help using awk command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help using awk command
# 1  
Old 08-31-2015
Need help using awk command

Hello,
I am trying to print a formatted test using awk command and its not working for me:

for ex: there is one file matching the pattern test as shown below

Code:
$ ls -ltr test* | awk '{print $9}'
test.dat

now, I want to print to a file the test file_name: test.dat using awk like
Code:
$  FLAG=file_name
$ls -ltr test* | awk '{print "$FLAG",$9}'
$FLAG test.dat

In the above awk command, I want to print the value of variable FLAG which will have some value (set above to file_name, this value can change at runtime) but I am not able to print it as it prints the variable name and not its value.

Any help is appreciated. Txs.
# 2  
Old 08-31-2015
Please use code tags, not icode tags for console output and commands.

Try either one:
Code:
FLAG=file_name
ls -ltr test* | awk -v FLAG=$FLAG '{print FLAG,$9}'
ls -ltr test* | awk -v FLAG=$FLAG '/FLAG/ {print $9}'

hth
This User Gave Thanks to sea For This Post:
# 3  
Old 08-31-2015
Hello calredd,

Following may help you in same.
Code:
FLAG=file_name
ls -l test* | awk -vflag="$FLAG" '{print flag,$9}'

EDIT:
Hello Sea,

There is no need of using ls -ltr, in spite ls -l can be used Smilie

Thanks,
R. Singh

Last edited by RavinderSingh13; 09-01-2015 at 01:53 AM.. Reason: Added a comment for one more solution, removed a solution as it was not requirement.
This User Gave Thanks to RavinderSingh13 For This Post:
# 4  
Old 08-31-2015
It worked. Thanks both, really appreciate it.
# 5  
Old 08-31-2015
Why not printf "${FLAG} %s\n" test* to avoid the ls, awk, and pipe. ${FLAG} cannot contain any % characters of course.
# 6  
Old 08-31-2015
Quote:
Originally Posted by RavinderSingh13
Hello calredd,

Following may help you in same.
Code:
FLAG=file_name
ls -l test* | awk -vflag="$FLAG" '{print flag,$9}'

EDIT:
Hello Sea,

There is no need of using ls -ltr, in spite ls -l can be used Smilie

EDIT2: Or we can use directly as follows without using ls.
Code:
 FLAG=file_name
awk -vflag="$FLAG" '{print flag,$9}' test*


Thanks,
R. Singh


Hello Mr Singh,
I need to print two variables this time, like:

Code:
 FLAG=file_name
 TIME=file_time
awk -v flag="$FLAG" '{print flag,$9}' test*

In the above code, I need to print TIME also after $9 but its not working. How can we print multiple variables using awk?
Thanks.
# 7  
Old 08-31-2015
Shell variables are not awk variables. It won't see TIME if you don't do -v TIME="$TIME"

ls file* | awk '{ print $9 }' is something VERY different from awk '{ print $9 }' file* by the way. The second actually reads the contents of the files in question. Don't swap them.
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies

2. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

3. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

4. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

5. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

6. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

7. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies
Login or Register to Ask a Question