Check if file is empty with variables, bash


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Check if file is empty with variables, bash
# 1  
Old 09-19-2013
[Solved] Check if file is empty with variables, bash

Hello again!

I have some trouble with scripting in bash.
In the following script I read from a folder with the files

Code:
line0_Ux.xy
line1_Ux.xy
line2_Ux.xy
.
.
.

Some of the files are empty. For those I would like to print a "0" in list.
I think the problem with the code is that bash thinks "$i_Ux" is the variable, but Im not sure..

Code:
        for i in $( ls -v ); do
            echo item: $i
	    if [ ! -s line$i_Ux.xy ]; then 
	      echo -e "0" >> list
	    else
	      cat $i | awk '{a+=$2; n++;} END  {print a/n}' >> list 
        done


Thanks a lot!!Smilie
# 2  
Old 09-19-2013
you are missing a fi, thats all, just before the last line...

Code:
for i in $( ls -v ) 
do
    echo item: $i
    if [ ! -s line$i_Ux.xy ]; then 
        echo -e "0" >> list
    else
        cat $i | awk '{a+=$2; n++;} END  {print a/n}' >> list 
    fi
done

This User Gave Thanks to vbe For This Post:
# 3  
Old 09-19-2013
That said looking at your script now, do you mind explaining what $( ls -v ) is supposed to give and what OS we are dealing with ( and the shell used perhaps?) because -v is not implemented on AIX or HP-UX (11.11...) and on solaris10 its a -l equivalent except that it displays also ACL stuff... but my guess would be a linux simple sort ls in which case your script is not working because $i is the name of the file! in which case line$i_Ux.xy would be lineline0_Ux.xy_Ux.xy for your first occurence which it cant find to test...
My 2 cents...

Last edited by vbe; 09-19-2013 at 12:09 PM..
This User Gave Thanks to vbe For This Post:
# 4  
Old 09-19-2013
(linux) man ls:
Quote:
-v natural sort of (version) numbers within text
If that is not absolutely essential, try
Code:
for i in *          
  do echo item: $i
     if [ -s line${i}_Ux.xy ]
        then awk '{a+=$2; n++;} END  {print a/n}' $i
        else echo "0"
     fi
  done > list

This User Gave Thanks to RudiC For This Post:
# 5  
Old 09-20-2013
I am using the terminal in openSuse 12.3 and ls -v lists the files in a numerical way like this: (1,2,3,..,10,11,..,100).

Thank you guys, now it works! I lost the "fi" and $i was allready the name of the file as you said.Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To check whether the file is empty or not in shell script (sh)

Hi All, I need to check a file whether it exists and also whether it is empty or not. I have a code for this but it is not working as per my requirement. Can anyone pls suggest me on this. function funcFLSanityCheck { if then echo "${varFLSentFileListPath}/${varFLSentFileName}... (7 Replies)
Discussion started by: Arun1992
7 Replies

2. Shell Programming and Scripting

Empty file check

Hi gurus , I have two files and i want to perform different action based on the condition if both or either is empty If then Do something elif then do something elif then do something else do something fi I have tried the below bt its not... (4 Replies)
Discussion started by: r_t_1601
4 Replies

3. Shell Programming and Scripting

Check if a text file is empty or not (using ls -s)

Hello, I want to make a script which says if a text file is empty or not. I tried two ways of making it, but I have problems with both of them. Now I think that the better way is the ls -s solution (considering that an empty text file has a 0 weight, because "cat file.txt" fails when file is... (4 Replies)
Discussion started by: Link_
4 Replies

4. Shell Programming and Scripting

Need to check for empty file in C shell script

I am running a C shell script. I have an output file from a previous step and I need to run "something" in the next step to check if the file is empty. If the file is empty, then the job script should finish EOJ. If the file is not empty then the job script should abend. Please help Thanks. (4 Replies)
Discussion started by: jclanc8
4 Replies

5. Shell Programming and Scripting

Bash-Shell: If-Clause to check if file is empty

Hello, I want to checkl whether my file has text in it or not. if ; then ... if ; then ... But none of these work Can someone help me? ---------- Post updated at 09:00 AM ---------- Previous update was at 08:55 AM ---------- The code-tags caused an displayerror,... (5 Replies)
Discussion started by: ABE2202
5 Replies

6. Shell Programming and Scripting

check if file is empty

How do I check if a file is empty in a sh script I want to test in my shell script if the output file is empty and if it is do one thing and if it isnt empty do another? any ideas? (8 Replies)
Discussion started by: stolz
8 Replies

7. UNIX for Dummies Questions & Answers

to check if file is empty or not and return a non zero value

Hi All, I am new to unix worldd . I need to check a file1 if its empty or not. If its empty then return a non zero value say 99 could you pls let me know the perl script for this. (2 Replies)
Discussion started by: mavesum
2 Replies

8. Shell Programming and Scripting

How to check if two variable are empty strings at once? (bash)

I need to check if $1 or $2 are empty before continuing but I don't know if bash has any logic of the sort. This is what I'm looking for - except that "and" doesn't seem to work. if and ;then ... Thank you! :D (4 Replies)
Discussion started by: ph0enix
4 Replies

9. UNIX for Dummies Questions & Answers

How to check if a file is empty?

Hi Masters..... I have problem !!! I need to check number of records in a file and if it is zero or file is empty i need to do some task. if ; then echo "File s empty" else echo "Not empty" fi so how to check this condition. I used wc -l < filename.txt => 1 for zero records same result... (1 Reply)
Discussion started by: shreekrishnagd
1 Replies

10. UNIX for Dummies Questions & Answers

How to check for empty file in Perl?

Hi, May I know how to check for empty file in Perl. Iam missing something, somewhere. #!/usr/bin/perl my $open_dir = '/path/'; my $file; my $ma = "abc_.*.\.psv\$" opendir(VAR, $open_dir) or die "Can't open $oepn_dir: $!\n"; while( defined ($file = readdir VAR) ) #read all... (1 Reply)
Discussion started by: deepakwins
1 Replies
Login or Register to Ask a Question