Print to file image sizes


 
Thread Tools Search this Thread
Top Forums Programming Print to file image sizes
# 1  
Old 10-29-2012
Print to file image sizes

I was trying to figure out how to write a shell script to be able to print the name of the file and size to a text file I wanted to know if I was on the right track and am understanding this better.

In my script a for loop be able to print files over 4mb (we charge differently for larger images)

Code:
image="/Home/Desktop/images"

(cd "$image" 
 for f in *.jpg; do
   let fsize=$(stat -c %s "$f")
   if (( fsize == 4mb )); then
     echo "$f"
   fi
 done) > mnt/desktop/sizes/results.txt

my understanding:
check variable $image that is being set from the directory
f is all images from *
do f's size and make a variable inside $()
stat -c %s prints the file name?
if condition is met for fsize equals 4mb size
print variable $f
to file results.txt
# 2  
Old 10-29-2012
Slight changes to your script:
Code:
image="/Home/Desktop/images"

{
 cd "$image"
 for f in *.jpg
 do
  let fsize=$(stat -c %s "$f")
  if (( fsize > 4194304 ))
  then
   echo "$f"
  fi
 done
} > mnt/desktop/sizes/results.txt

# 3  
Old 10-29-2012
am I on the right track and understanding this??

EDIT:
how do you come up with the size amount?? example if I have a 2mb file what would it be in Linux?
# 4  
Old 10-29-2012
Quote:
Originally Posted by graphicsman
EDIT:
how do you come up with the size amount?? example if I have a 2mb file what would it be in Linux?
That'll be 2*1024*1024=2097152 bytes. stat -c %s file also returns the size in bytes.
# 5  
Old 10-29-2012
for got the ; after fsize
# 6  
Old 10-30-2012
I extended my code to check the directory but now my issue is if try to echo $f it gives me the full path and the filename of the image. How can I just get the name to also print next to the directory??

Code:
		echo 'checking images sizes'
		{
			
			for f in $(find $DIRECTORY/$directoryname -name \*.jpg);
				do
				let fsize=$(stat -c %s "$f");
					if (( fsize > 2097152 ))
						then
							echo "$directoryname  $f"
					fi
				done
			} >> results.txt


EDIT:
and how do you do an && in bash so I can check for .jpeg and .jpg

Last edited by graphicsman; 10-30-2012 at 05:05 PM..
# 7  
Old 10-30-2012
man find
You will see it supports logical OR and AND,
for example

Code:
find $DIRECTORY/$directoryname -name "*.jpg" -o -name "*.jpeg"

This User Gave Thanks to migurus For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Comparing file sizes

Hello, I need to compare the size of a file to what it's size was 20min ago. So far my outline script is:ls -ls /home > filesizeafter.txt compare filesizeafter.txt filesizebefore.txt > filesizechange.txt if /home filesizechange.txt > 100 { email root; } ls -ls /home >... (2 Replies)
Discussion started by: chyurdan
2 Replies

2. UNIX for Dummies Questions & Answers

How to create a print filter that print text & image?

Currently, I have a print filter that takes a text file, that convert it into PCL which then gets to a HP printer. This works. Now I need to embedded a image file within the text file. I'm able to convert the image file into PCL and I can cat both files together to into a single document... (1 Reply)
Discussion started by: chedlee88-1
1 Replies

3. Shell Programming and Scripting

Add all file sizes in ls -l

solaris 10 (c shell) need a command or script that will add up all (*.tmp) file sizes in bytes of a single directory, or kbytes, no matter (1 Reply)
Discussion started by: ajp7701
1 Replies

4. UNIX for Dummies Questions & Answers

Checking for file Sizes

Hi , I have some 10 files where i need to check the size of each and every file...if the size of the file is 0...I shud send out an email mentioning which file is actually of 0KB size.. Pls help (13 Replies)
Discussion started by: saggiboy10
13 Replies

5. Shell Programming and Scripting

Help with file sizes

I have 2 big files in the size of gb. They are same with respect to content, both are “,” delimited. Now both of them are created by two different processes but has the same logic. The problem is they are differing only in few bytes for e.g one file is 202195751 bytes other is 202195773. So... (2 Replies)
Discussion started by: dsravan
2 Replies

6. UNIX for Dummies Questions & Answers

Help on adding file sizes

Hi I need to take a list of files that are defined by an ls -ltr or grep for particular file names - and add up the byte size colum which is field 5 seperated by a space. I tried to do this but I think I am way off: for file in 'ls -ltr | grep 20070916 | nawk -F" " '{temp+=5} END {print... (1 Reply)
Discussion started by: llsmr777
1 Replies

7. Windows & DOS: Issues & Discussions

print image files to variety printer models

Hi, I am currently working on a windows platform (2000 and XP) and was wondering if there are today solutions for the task I have. I need to print image files onto a variety of inkjet printer models, most epson non-postscript. Some of the models I know but new models are added almost every... (0 Replies)
Discussion started by: jokofix007
0 Replies

8. Shell Programming and Scripting

compare file sizes

Is there a command that will return the name of the largest file within a directory? If so, can I set the returned filename into a variable? (4 Replies)
Discussion started by: joli
4 Replies
Login or Register to Ask a Question