Sponsored Content
Operating Systems AIX file_cnt=`ls $in_dir/$file_name | wc -l` not working Post 302709669 by Corona688 on Wednesday 3rd of October 2012 12:18:41 PM
Old 10-03-2012
That method is prone to failures if a directory accumulates too many files, especially on a system like HP-UX where you may be using an old shell. It would be better to use grep -c, though it takes regexes, not globs. A dumb/simple conversion from glob to regex can be done by replacing . with \. and * with .*, prepending ^ and appending $ to force it to match entire lines, but this may not be perfect.

Code:
#!/bin/ksh

while read DIR HOLD GLOB
do
        GLOB="${GLOB/./\\.}" # Replace . with \.
        GLOB="${GLOB/\*/.*}" # Replace * with .*
        GLOB="^${GLOB}\$" # Turn GLOB into ^GLOB$ to match entire line

        if [ ! -e "$DIR" ]
        then
                echo "$DIR does not exist"
        elif [ ! -d "$DIR" ]
        then
                echo "$DIR is not a directory"
                continue
        else
                COUNT="`ls "$DIR" 2>/dev/null | grep -c "$GLOB"`"
                echo "Found $COUNT matching files in directory"
        fi
done < listfile

 

10 More Discussions You Might Find Interesting

1. Solaris

GUI not working... CLI is working fine

Hello, I have X4500 running Solaris 10. I can access it through CLI but I cannot see the GUI. When I reboot it, the GUI works till all the files are loaded (ie., the initial boot sequence) and it prompts me to enter username and password and there it ends. The screen just has a blinking cursor... (4 Replies)
Discussion started by: bharu_sri
4 Replies

2. Linux

FTP not working under Linux but working under any other OS ??? Very strange

Dear all, I am totally despaired and puzzled. Using Filezilla under Windows under the same network as our Linux servers is working. Using FTP command-line client under any of our Linux debian servers is not working ! I tried with different FTP servers -> same problem ! All commands are... (12 Replies)
Discussion started by: magix_ch
12 Replies

3. UNIX for Advanced & Expert Users

Awk expressions working & not working

Hi, Putting across a few awk expressions. Apart from the last, all of them are working. echo a/b/c | awk -F'/b/c$' '{print $1}' a echo a/b/c++ | awk -F'/b/c++' '{print $1}' a echo a/b/c++ | awk -F'/b/c++$' '{print $1}' a/b/c++ Request thoughts on why putting a '$' post double ++... (12 Replies)
Discussion started by: vibhor_agarwali
12 Replies

4. Shell Programming and Scripting

Script not working in cron but working fine manually

Help. My script is working fine when executed manually but the cron seems not to catch up the command when registered. The script is as follow: #!/bin/sh for file in file_1.txt file_2.txt file_3.txt do awk '{ print "0" }' $file > tmp.tmp mv tmp.tmp $file done And the cron... (2 Replies)
Discussion started by: jasperux
2 Replies

5. UNIX for Advanced & Expert Users

Advance file_name serech from set of list files in particular directory

Hi All, im hav one requirement, let me explain my requirement. my script will run every one hour and it wil pull files from remote server to my local server.but the d files hwich are pulled my not be in required format wht im expecting in my server. but in my sever in particular dierectory i... (7 Replies)
Discussion started by: Seshendranath
7 Replies

6. Red Hat

Nslookup working but ping not working at windows client

Hi Team we have created a DNS server at RHEL6.2 environment in 10.20.203.x/24 network. Everything is going well on linux client as nslookup, ping by host etc in entire subnet. We are getting problem in windows client as nslookup working as well but not ping. all the firewall is disabled and... (5 Replies)
Discussion started by: boby.kumar
5 Replies

7. Shell Programming and Scripting

File_Name and send email

I have two files file1.txt A.txt file2.txt B.txt Send email to end users as filename as heading and content example: email should be like these file1 A.txt (3 Replies)
Discussion started by: satish1222
3 Replies

8. Shell Programming and Scripting

Automating pbrun /bin/su not working, whenever manually it is working using putty

I am trying to automate a script where I need to use pbrun /bin/su but for some reason it is not passing thru the pbrun as my code below. . ~/.bash_profile pbrun /bin/su - content c h 1 hpsvn up file path I am executing this from an external .sh file that is pointing to this scripts file... (14 Replies)
Discussion started by: jorgejac
14 Replies

9. Shell Programming and Scripting

Working web service call not working with curl

Hello, Newbie here, I have a perfectly well working web service call I can issue from chrome (PC Windows 10) and get the results I want (a dimmer being turned on in Fibaro Home Center 2 at level 40) I am not allowed to post urls but the below works with http and :// and... (3 Replies)
Discussion started by: abigbear
3 Replies

10. Shell Programming and Scripting

Disk Space Utilization in HTML format working in one environment and not working on the other

Hi Team, I have written the shell script which returns the result of the disk space filesystems which has crossed the threshold limit in HTML Format. Below mentioned is the script which worked perfectly on QA system. df -h | awk -v host=`hostname` ' BEGIN { print "<table border="4"... (13 Replies)
Discussion started by: Harihsun
13 Replies
FIND2PERL(1)						 Perl Programmers Reference Guide					      FIND2PERL(1)

NAME
find2perl - translate find command lines to Perl code SYNOPSIS
find2perl [paths] [predicates] | perl DESCRIPTION
find2perl is a little translator to convert find command lines to equivalent Perl code. The resulting code is typically faster than running find itself. "paths" are a set of paths where find2perl will start its searches and "predicates" are taken from the following list. "! PREDICATE" Negate the sense of the following predicate. The "!" must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)). "( PREDICATES )" Group the given PREDICATES. The parentheses must be passed as distinct arguments, so they may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)). "PREDICATE1 PREDICATE2" True if _both_ PREDICATE1 and PREDICATE2 are true; PREDICATE2 is not evaluated if PREDICATE1 is false. "PREDICATE1 -o PREDICATE2" True if either one of PREDICATE1 or PREDICATE2 is true; PREDICATE2 is not evaluated if PREDICATE1 is true. "-follow" Follow (dereference) symlinks. The checking of file attributes depends on the position of the "-follow" option. If it precedes the file check option, an "stat" is done which means the file check applies to the file the symbolic link is pointing to. If "-follow" option follows the file check option, this now applies to the symbolic link itself, i.e. an "lstat" is done. "-depth" Change directory traversal algorithm from breadth-first to depth-first. "-prune" Do not descend into the directory currently matched. "-xdev" Do not traverse mount points (prunes search at mount-point directories). "-name GLOB" File name matches specified GLOB wildcard pattern. GLOB may need to be quoted to avoid interpretation by the shell (just as with using find(1)). "-iname GLOB" Like "-name", but the match is case insensitive. "-path GLOB" Path name matches specified GLOB wildcard pattern. "-ipath GLOB" Like "-path", but the match is case insensitive. "-perm PERM" Low-order 9 bits of permission match octal value PERM. "-perm -PERM" The bits specified in PERM are all set in file's permissions. "-type X" The file's type matches perl's "-X" operator. "-fstype TYPE" Filesystem of current path is of type TYPE (only NFS/non-NFS distinction is implemented). "-user USER" True if USER is owner of file. "-group GROUP" True if file's group is GROUP. "-nouser" True if file's owner is not in password database. "-nogroup" True if file's group is not in group database. "-inum INUM" True file's inode number is INUM. "-links N" True if (hard) link count of file matches N (see below). "-size N" True if file's size matches N (see below) N is normally counted in 512-byte blocks, but a suffix of "c" specifies that size should be counted in characters (bytes) and a suffix of "k" specifies that size should be counted in 1024-byte blocks. "-atime N" True if last-access time of file matches N (measured in days) (see below). "-ctime N" True if last-changed time of file's inode matches N (measured in days, see below). "-mtime N" True if last-modified time of file matches N (measured in days, see below). "-newer FILE" True if last-modified time of file matches N. "-print" Print out path of file (always true). If none of "-exec", "-ls", "-print0", or "-ok" is specified, then "-print" will be added implicitly. "-print0" Like -print, but terminates with instead of . "-exec OPTIONS ;" exec() the arguments in OPTIONS in a subprocess; any occurrence of {} in OPTIONS will first be substituted with the path of the current file. Note that the command "rm" has been special-cased to use perl's unlink() function instead (as an optimization). The ";" must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)). "-ok OPTIONS ;" Like -exec, but first prompts user; if user's response does not begin with a y, skip the exec. The ";" must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)). "-eval EXPR" Has the perl script eval() the EXPR. "-ls" Simulates "-exec ls -dils {} ;" "-tar FILE" Adds current output to tar-format FILE. "-cpio FILE" Adds current output to old-style cpio-format FILE. "-ncpio FILE" Adds current output to "new"-style cpio-format FILE. Predicates which take a numeric argument N can come in three forms: * N is prefixed with a +: match values greater than N * N is prefixed with a -: match values less than N * N is not prefixed with either + or -: match only values equal to N SEE ALSO
find, File::Find. perl v5.16.3 2014-06-17 FIND2PERL(1)
All times are GMT -4. The time now is 02:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy