Problem with type-casting in awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with type-casting in awk
# 1  
Old 01-29-2009
Problem with type-casting in awk

Hi I'm trying to write a script which takes an integer as input and checks for files with size > input and displays it on screen.

The code I've tried :

echo 'Enter the min file size expected'
read filesize



du -ah <folder name> | awk -F: '$1>int(filesize) {print $1,$2)' is always yielding files with size greater than 1000k only.

Please help out
# 2  
Old 01-29-2009
I don't kniw if awk can cast types like C for example. Maybe use typeset -i in shell before you hand it over to awk. Also I don't see where you hand it over to awk like:

Code:
awk -v filesize=${filesize} ...

Maybe you just did not post it, but awk does not know about shell variables by it's own.
If that is the reason what I am guessing, you can leave the typeset just out of the shell script.
# 3  
Old 01-29-2009
Try this
Code:
du -ab | awk "\$1>int($filesize) {print \$0}"

# 4  
Old 01-29-2009
Pludi

my version of unix doesnt support -b option on du..


Zaxxon

I've tried what you've told...

Code ( after read filesize) :

typeset -i filesize = ${filesize}
awk -v filesize = ${filesize}

du -ah <folder> | awk -F: '$1>filesize {print $1,print $2}'

Now it shows all the files present in the folder irrespective of the size criterion.


Am relatively new to the OS and scripting..so sorry for any basic errors
# 5  
Old 01-29-2009
I guess now I get a bit closer. Using "du -ah" is giving you values in kilobyte and adding a "k" to your numbers. Maybe use "du -ak" instead so the "k" is left out.
# 6  
Old 01-29-2009
du -ah must be the reason since it is giving a varchar, numbers mixed with a letter, the "k". So nevermind and let's stop trying around; try this one:

Code:
#!/bin/sh

get_fsize()
{
    echo
    du -ak /data |\
    awk -v fs=$1 '$1 >= fs {print $0}'
}

echo "Enter the minimum filesize to be displayed:"
read FSIZE

case ${FSIZE} in
    [0-9]*)     get_fsize ${FSIZE};;
         *)     echo "Invalid input."
                exit 1
                ;;
esac

echo -e "\nDone."

exit 0

# 7  
Old 01-29-2009
Zaxxon

I've tried using -ak as well as the code that you've posted.


Both are giving the same result : displaying all the files and subfolders present in the directory mentioned.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Very strange output with casting

Hi All, I am having a strange issue. Below is the code snippet. If I print fraction * (double)::pow((double)10,scalingFactor) which is a double I am getting 154 when I type cast that to int as (int)( ((fraction) * ((double)::pow((double)10,scalingFactor)))) it is becoming 153. Not sure why... (0 Replies)
Discussion started by: arunkumar_mca
0 Replies

2. Shell Programming and Scripting

Casting the data command !

Hey guys. 1st problem: I have to create a script for every hour run a script against a DB and then produce results to log file and eventually email. I have to manipulate the date command from something like this date '+%F %H:%M.%s' which produces the below the below result 2014-08-01... (2 Replies)
Discussion started by: mo_VERTICASQL
2 Replies

3. Shell Programming and Scripting

Type casting problem

hi guys, i m new to shell script.. i dont know how to type cast string into integers and i mention my problem below.. date="21091988" month=$((${date:2:2})) # extract the month from previous date variable temp=$(($month*23)) when i am trying to calculate the temp value i got the... (5 Replies)
Discussion started by: raadhaakrishnan
5 Replies

4. Programming

C++ type-casting a member variable in const methods

Is it permitted to type-cast a member variable passed in as a parameter in a member const method .. I am doing something like : in a return-type method () const { variable other = long(member variable) } this other assigned variable is not updating and I wonder if type-casting in such... (1 Reply)
Discussion started by: shriyer123
1 Replies

5. UNIX for Advanced & Expert Users

How type casting works ?

I am having a doubt with type casting in C. Very often in network programming, we have something like this: char *data = ...; struct iphdr *ip = (struct iphdr *) data; where iphdr is define in netinet/ip.h. Let us say that the size of the content of held by 'data' is much more than... (1 Reply)
Discussion started by: radiatejava
1 Replies

6. Shell Programming and Scripting

Find problem listing directories even -type f

Hi All, #!/bin/ksh find /home/other -ls -type f -xdev | sort -nrk7 | head -2 >bigfile.txt The above is my script, which writes the large file into a file called bigfile.txt. My script contains only the above two lines. after execution i am getting the output like find: cannot chdir to... (1 Reply)
Discussion started by: Arunprasad
1 Replies

7. Shell Programming and Scripting

casting

Hi everyone, I was wondering how i could cast a floating value to an integer in csh Thanks (0 Replies)
Discussion started by: ROOZ
0 Replies

8. Shell Programming and Scripting

Stuck on a matching, copying type problem

Hi all, I am new to these forum and to scripting in general for that matter. i have been looking through the forums for something that could explain my problem. I have be come pretty familiar with sed and awk but I can not seem to figure this out... I am trying to match data from 3 files but every... (4 Replies)
Discussion started by: derek3131
4 Replies

9. UNIX for Advanced & Expert Users

terminal type problem with cygwin on aix

hey, I use cygwin to connect to AIX 5.2 but when I open vi I get an error saying: ex: 0602-108 cygwin is not a recognized terminal type how can I fix that? I thought cygwin was tty vt100? (1 Reply)
Discussion started by: rein
1 Replies

10. Shell Programming and Scripting

Problem with variable type

Dear All, I am trying to write an script to calculate geometric centre of selected residues of a protein structure. Say I have a PDB file (a text containing the x, y, and z coordinates of atoms of a protein). I want to extract the X coordinates of the atoms belonging to the interested residues... (2 Replies)
Discussion started by: siavoush
2 Replies
Login or Register to Ask a Question