Sponsored Content
Top Forums Shell Programming and Scripting Help with counting files please Post 302090418 by Glenn Arndt on Monday 25th of September 2006 01:37:30 PM
Old 09-25-2006
From the ksh man page:
Code:
${parameter#pattern}
${parameter##pattern}
                    If the shell pattern matches the beginning of
                    the value of parameter, the value of this
                    substitution is the value of the parameter
                    with the matched portion deleted; otherwise
                    the value of this parameter substituted.  In
                    the former case, the smallest matching
                    pattern is deleted; in the latter case, the
                    largest matching pattern is deleted.

So, ${f##*.} means "return anything after the last dot in the file name."

Here's one way to include the files that have no extensions:
Code:
for f in *; do
  if [[ $f = *.* ]]; then
    echo ${f##*.}
  else
    echo "[None]"
  fi
done | sort | uniq -c

Output would be like:
Code:
   4 [None]
  10 awk   
   2 sed   
 108 sh    
   9 txt


Last edited by Glenn Arndt; 09-25-2006 at 02:40 PM.. Reason: Fixed man page stuff
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Counting Occurances in Two Files

I have two files I want to compare, one is a list of variables and the other is a text file COBOL program. Basically what I want to do is display only those variables that appear in the COBOL program only once. However I would also accept a count of each variable as it appears in the COBOL... (2 Replies)
Discussion started by: Keith Gergel
2 Replies

2. UNIX for Dummies Questions & Answers

counting files

Which one line command can count and print to the screen the number of files containing "a" or "A" in their name (5 Replies)
Discussion started by: Edy
5 Replies

3. UNIX for Dummies Questions & Answers

Counting lines and files

Hi experts, First of all thanks for all your help. How can i count the lines within a text file and send this number to another text file? And by the way how can i count the number of files inside a tape ("/dev/rtp") that as one pattern (Ex. "/CTA/") and send this number to a text file? I... (6 Replies)
Discussion started by: jorge.ferreira
6 Replies

4. Solaris

Counting up files

Hi, I have a load of if statements that look for files in a directory, I want to be able to count them up and the total files confirmed in an email? I ahve tried expr but i this does not work and it only reads in the first if and ignores the rest. Please see script, #!/bin/ksh ... (2 Replies)
Discussion started by: Pablo_beezo
2 Replies

5. UNIX for Dummies Questions & Answers

Counting rows in many files

I'm regularly counting the number of rows in a number of files. I need to know how many rows their are in all files together. Counting rows in one file I can handle, but how do I count rows in all at once? I'd be grateful for any answer. (7 Replies)
Discussion started by: DrZoidberg
7 Replies

6. Shell Programming and Scripting

counting prefixes of files

Hello, at the moment I'm on with programming some kind of version history script for network devices. The configration files are uploaded in the form: devicename-confg_date_time. For keeping the last 10 configurations I want to split the devicename from the rest. This works well with... (5 Replies)
Discussion started by: Sally[-_-]
5 Replies

7. Shell Programming and Scripting

multiple files: counting

In a directory, I have 5000 multiple files that contains around 4000 rows with 10 columns in each file containing a unique string 'AT' located at 4th column. OM 3328 O BT 268 5.800 7.500 4.700 0.000 1.400 OM 3329 O BT 723 8.500 8.900... (7 Replies)
Discussion started by: asanjuan
7 Replies

8. Shell Programming and Scripting

Counting Files

In a script, how would I go about finding the number of files for the first parameter after my script name? For instance, my script name is myscript.sh and the folder I am checking is not the current working directory, lets say it's folder1. so I type myscript.sh folder1 This script below... (2 Replies)
Discussion started by: Confirmed104
2 Replies

9. UNIX for Dummies Questions & Answers

Counting files without ls or wc

i need to write a shell script to "count the number of files in the current directory but without using either ls or wc command"..... please help! (1 Reply)
Discussion started by: lexicon
1 Replies
fnmatch(3)						     Library Functions Manual							fnmatch(3)

NAME
fnmatch - Matches filename patterns LIBRARY
Standard C Library (libc.so, libc.a) SYNOPSIS
#include <fnmatch.h> int fnmatch( const char *pattern, const char *string, int flags); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: fnmatch(): XPG4, XPG4-UNIX Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Contains the pattern to which the string parameter is to be compared. Contains the string to be compared against the pattern parameter. Contains a bit flag specifying the configurable attributes of the comparison to be performed by the fnmatch function. The flags parameter modifies the interpretation of the pattern and string parameters. It is the bitwise inclusive OR (|) of 0 (zero) or more of the following flags, which are defined in the fnmatch.h file. Slash in the string parameter only matches slash in the pattern parameter. Leading period in the string parameter must be exactly matched by period in the pattern parameter. Unless FNM_NOESCAPE is set, preceding a character in pattern with a (backslash character) causes fnmatch() to match that character in string. For example, \ matches a backslash in string. If FNM_NOESCAPE is set, (backslash) is interpreted as an ordinary character. If the FNM_PATHNAME flag is set in the flags parameter, a / (slash) in the string parameter is explicitly matched by a / in the pattern parameter. It is not matched by either the * (asterisk) or ? (question-mark) special characters, nor by a bracket expression. If the FNM_PATHNAME flag is not set, the / is treated as an ordinary character. If FNM_PERIOD is set in the flags parameter, then a leading period in the string parameter only matches a period in the pattern parameter; it is not matched by either the asterisk or question-mark special characters, nor by a bracket expression. A period is determined to be leading according to the setting of the FNM_PATHNAME flag, according to the following rules: If the FNM_PATHNAME flag is set, a period is leading only if it is the first character in the string parameter or if it immediately follows a slash. If the FNM_PATHNAME flag is not set, a period is leading only if it is the first character of the string parameter. If FNM_PERIOD is not set, no special restrictions are placed on matching a period. A (backslash character) quotes the next character, unless FNM_NOESCAPE is set. If FNM_NOESCAPE is set, (backslash) is treated as itself. DESCRIPTION
The fnmatch() function checks the string specified by the string parameter to see if it matches the pattern specified by the pattern param- eter. This routine follows the match criteria of the glob() function. The fnmatch function is useful when a program needs to perform pattern matching, such as when a directory is to be searched for a particu- lar string (as is the case with the find command). A program like the pax command can also use the fnmatch() function to perform its pat- tern matching operations. RETURN VALUES
If the value in the string parameter matches the pattern specified by the pattern parameter, then the fnmatch() function returns 0 (zero). If there is no match, the fnmatch() function returns FNM_NOMATCH, which is defined in the fnmatch.h file. If an error occurs, the fnmatch() function returns a nonzero value. RELATED INFORMATION
Functions: glob(3), globfree(3), regcomp(3) Standards: standards(5) delim off fnmatch(3)
All times are GMT -4. The time now is 08:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy