Awk: can't open error


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk: can't open error
# 1  
Old 06-26-2013
Awk: can't open error

Hi ,
In a directory i've the files in the following format
pay:year:mon:11789604
pay:year:mon:17675644
---
and i need to get 4th part of the above file name
so i used awk command in the below code
Code:
#!/bin/ksh
for test_data in pay*
do
   
 txt_awk = awk -F':' '{print $4;}' $test_data
 echo "$txt_awk"  
 
done

Error: 
awk: can't open

# 2  
Old 06-26-2013
Hello,

Could you please try the following code and let me know.


Code:
 
txt_awk = `echo $test_data | awk -F':' '{print $4;}'`


Please do this change and try to run the script. It should work properly.


Thanks,
R. Singh
# 3  
Old 06-26-2013
Hey,

If you want to take the fourth part of file name, you could do something like below,

Code:
ls pay*|awk -F':' '{print $4;}'

If you want to store the output of awk to a variable, you should use like below,
Code:
variable_name=`your command goes here`

or

variable_name=$(your command goes here)

Cheers!!!
-R
# 4  
Old 06-26-2013
Thanks Ravinder, Rangarasan

I tried both of your option.
And the error is awk not found
Code:
#!/bin/ksh
for test_data in pay*
do
 txt_awk = `echo $test_data | awk -F':' '{print $4;}'`
 echo "$txt_awk"
done

And tried like below also
Code:
#!/bin/ksh
for test_data in pay*
do
 txt_awk = `$test_data | awk -F':' '{print $4;}'`
 echo "$txt_awk"
done

In both cases awk command not found error

Thanks

Last edited by smile689; 06-26-2013 at 11:16 AM..
# 5  
Old 06-26-2013
You don't need an awk code inside for loop to do this. You can use parameter substitution:
Code:
#!/bin/ksh

for file in pay*
do
        file="${file##*:}"
        print "$file"
done

If you are writing a shell script, always use shell built-ins where ever possible.
This User Gave Thanks to Yoda For This Post:
# 6  
Old 06-26-2013
Thank You Yoda,
It worked .

Could you give some idea on command
${file##*:}


# 7  
Old 06-26-2013
${file##*:} deletes the largest matching pattern (matches from beginning) until colon :

Since I put asterisks * it deletes every character before that last colon :

For further reference: Parameter Substitution
This User Gave Thanks to Yoda For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk (Too many open files)

Hi Team, This is my first post, hope I am doing it right. I have a large file, like 6 GB. Its a proxy file so vendor requested to change username from logs for saving the confidentiality of the user. This is the script I created (With the help of Google): awk '{ tmp="echo " $5 " |... (12 Replies)
Discussion started by: tealc
12 Replies

2. Shell Programming and Scripting

awk date too many open files

Dear Community; I have a csv file with msb and lsb in $3 and $5 fields which provides the epochtime (factor 65536). Further I need to convert epochtime to readable datetime. But am getting an error. File Sample: 5000a,1000,20671,0,16421,0,1,NULL,0 5000b,1000,20974,0,-16284,0,1,NULL,0... (4 Replies)
Discussion started by: mystition
4 Replies

3. Shell Programming and Scripting

awk output yields error: awk:can't open job_name (Autosys)

Good evening, Im newbie at unix specially with awk From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example 1. This is the inputfile: $ more MapaRep.txt ds_extra_nikira_usuarios... (18 Replies)
Discussion started by: alexcol
18 Replies

4. Shell Programming and Scripting

Awk: can't open file!!

To whom it may concern, Please help! I am trying to use awk to open all the files in a folder and remove one row and append everything into an output file. for X in `ls /Users/misssmith/Desktop/birdseed/`; do awk '(NR==546412)' /Users/misssmith/Desktop/birdseed/$X >>... (6 Replies)
Discussion started by: salpie
6 Replies

5. Shell Programming and Scripting

How to open large datafie in awk?

I just tried awk '{print}' all.plo awk: cannot open all.plo (Value too large for defined data type)awk '{print $8"-"$7"-"$6,$9,$4,$5,$12,$15}' all.plo awk: cannot open all.plo (Value too large for defined data type) datafile size is 4.8GB any other provision ? only cat works FS is... (4 Replies)
Discussion started by: Akshay Hegde
4 Replies

6. Shell Programming and Scripting

AWK Too many open streams to print/printf

hallow all i need your advice about this script i have script like this: INDEX=/zpool1/NFS/INDEX/${1} SCRIPT=/zpool1/NFS/script/${1} LIST=SAMPLE cd ${SCRIPT} for i in `cat ${LIST}` do GETDATE=`echo ${i}|awk '{print substr($1,9,8)}'` /usr/xpg4/bin/awk -F ":" '{close(f);f=$4}{print >>... (4 Replies)
Discussion started by: zvtral
4 Replies

7. Shell Programming and Scripting

awk: can't open the file

I have a shell script with the following awk command. awk '$1 == "GEOG_SRV"{split($2,a,":");print a}' /etc/qm when I run it manually command line its fine and giving the output. bash-3.00$ awk '$1 == "GEOG_SRV"{split($2,a,":");print a}' /etc/qm 9010 But in the script its... (5 Replies)
Discussion started by: Tuxidow
5 Replies

8. Shell Programming and Scripting

awk Can't open file

Hello all, I am creating a small bash script to cycle through some files that are the results of an analysis I have run (I am a statistician). There are many folders called job001, job002,...,job135. Each folder has a text file called results.txt. I want to create two summary files of the... (3 Replies)
Discussion started by: jem43
3 Replies

9. Shell Programming and Scripting

awk: can't open

Hi Guys, I was just trying to run a bunch of test scripts which ran perfectly before i changed servers to a different solaris machine. But i just changed it to run on a different solaris version and my awk statement in the script shows an error. awk BEGIN{s=ARGV; r=ARGV; \ ... (2 Replies)
Discussion started by: wick3dsunny
2 Replies

10. Shell Programming and Scripting

awk: cannot open inputf

I'd like some help with awk too. Somewhere in my bash script i have written something like this: awk -v outputfile=$finalFile -v inputf=$file 'BEGIN { commands } { more commands } ΕND{ }' inputf where the file is a .input file with data. I also tried this: awk -v... (2 Replies)
Discussion started by: little_fairy
2 Replies
Login or Register to Ask a Question