Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Looping through directory for file and do a word count

Posted on 2009-05-04
5
Medium Priority
?
704 Views
Last Modified: 2013-12-26
Hello All.

I am working on a script which basically loop through a directory for files and does a word count for each file and if the file has more than 1 row then writes that filename to a log file.

1. Loop thorugh a directory and pick up files
2. do a word count on each file
3. write the filename to a logfile only if the file has more than 1 record.

I have a written some code and it works but it is writing all files to logfile
for file in `ls`
do
 Count=`echo cat $file |  wc -l`
echo " my count is $Count"
if [ "$count" -gt 1 ];
then
echo $count
echo $file >> /home/log.txt
else
 echo "there is no file to write"
fi
done

Open in new window

0
Comment
Question by:antvu
  • 2
  • 2
5 Comments
 
LVL 8

Expert Comment

by:mostart
ID: 24295835
watch your case. $Count is initialized with capital C and later you are using lower case c..
0
 

Author Comment

by:antvu
ID: 24295936
I  changed the case with upper case C and executed the script.. below is the result i got
my count is 1
there is no file to write
 my count is 1
there is no file to write
 my count is 1
there is no file to write
 my count is 1
there is no file to write
___________________________

I have 4 files in the directory , one of the files has 1 record and other 3 have more than 1 ..
0
 
LVL 8

Accepted Solution

by:
mostart earned 150 total points
ID: 24295967
also remove the "echo" in line 3.
0
 

Author Comment

by:antvu
ID: 24295991
Thanks mostart.. that worked.
I am closing the question now.
0
 
LVL 48

Expert Comment

by:Tintin
ID: 24299015
Let's remove redundant code and shorten
#!/bin/bash
for file in *
do
  [ -f $file ] || continue  # Skip non-files
  lines=$(wc -l <$file)
  [ $lines -gt 1 ] && echo $file >>/home/log.txt
done

Open in new window

0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Background Still having to process all these year-end "csv" files received from all these sources (including Government entities), sometimes we have the need to examine the contents due to data error, etc... As a "Unix" shop, our only readily …
Utilizing an array to gracefully append to a list of EmailAddresses
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

879 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question