Sponsored Content
Top Forums Shell Programming and Scripting Counting the number of occurances of all characters (a-z) in a string Post 302221867 by bounsy on Tuesday 5th of August 2008 12:10:10 PM
Old 08-05-2008
Non-destructive counting

I know this is an older thread, but I had a slightly different scenario, where I needed non-destructive counting and thought I'd share.

The s///g and tr/// methods already mentioned remove text from the original string. With a slight modification (adding parentheses and $1), the s/// operator can be used non-destructively:

$count = $string =~ s/([a-zA-Z])/$1/g;

In my specific case, I needed to sort a list of directories by depth. That is: /, /onelevel, /two/levels, /three/level/path, etc.

My solution was the following:

@dirs = sort {($a =~s/(\/)/$1/g) <=> ($b =~s/(\/)/$1/g)} @dirs;

It sorts the list by the number of times "/" appears in the directory, which (on a Unix system) is the same as the depth. The sort function is able to obtain the counts repeatedly and still have the original strings left over.

Note that my code doesn't correctly handle doubled slashes (e.g. "/my//dir") or relative paths (e.g., "../dir" or "/my/dir/../dir2"), but it's easy to handle those by ensuring that the paths are all absolute prior to the above line of code.
 

10 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

count the number of files which have a search string, but counting the file only once

I need to count the number of files which have a search string, but counting the file only once if search string is found. eg: File1: Please note that there are 2 occurances of "aaa" aaa bbb ccc aaa File2: Please note that there are 3 occurances of "aaa" aaa bbb ccc... (1 Reply)
Discussion started by: sudheshnaiyer
1 Replies

3. Shell Programming and Scripting

number of characters in a string

Hi there, I have some user input in a variable called $VAR, and i need to ensure that the string is 5 or less characters .... does anybody know how i can count the characters in the variables ? any help would be great, cheers (2 Replies)
Discussion started by: rethink
2 Replies

4. Shell Programming and Scripting

How to count number of occurances of string in a file?

Gurus, Need little guidance. I have A.txt and B.txt file. B.txt file contains Unique strings. Sample content of B.txt file for which i cut the fourth column uniquely and output directed to B.txt file And A.txt file contains the above string as a fourth column which is last column. So A.txt... (7 Replies)
Discussion started by: Shirisha
7 Replies

5. UNIX for Dummies Questions & Answers

AWK - number of specified characters in a string

Hello, I'm new to using AWK and would be grateful for some basic advice to get me started. I have a file consisting of 10 fields. Initially I wish to calculate the number of . , ~ and ^ characters in the 9th field ($9) of each line. This particular string also contains alphabetical... (6 Replies)
Discussion started by: Olly
6 Replies

6. UNIX for Dummies Questions & Answers

counting occurrence of characters in a string

Hello, I have a string like this 0:1:2:0:2:2:4:0:0:0:-200:500...... what i want is to break down how many different characters are there and their count. For example for above string it should display 0 - 5 times 1 - 1 times 2 - 3 times 4 - 1 times . . . I am stuck in writing... (8 Replies)
Discussion started by: exit86
8 Replies

7. Shell Programming and Scripting

Counting number of records with string row delimiter

HI, i have a file like this t.txt f1|_f2|_ f1|_f2|_ f1|_f2|_ as if col delimiter is |_ and row delimiter |_\n trying to count number of records using awk $ awk 'BEGIN{FS="|_" ; RS="~~\n"} {n++}END{print n} ' t.txt 7 wondering how can i count this to 3 ? thx (9 Replies)
Discussion started by: aksforum
9 Replies

8. Shell Programming and Scripting

counting the number of characters in the filename of all files in a directory?

I am trying to display the output of ls and also print the number of characters in EVERY file name. This is what I have so far: #!/bin/sh for x in `ls`; do echo The number of characters in x | wc -m done Any help appreciated (1 Reply)
Discussion started by: LinuxNubBrah
1 Replies

9. Shell Programming and Scripting

Counting the number of characters

Hi all, Can someone help me in getting the following o/p I/p:... (7 Replies)
Discussion started by: Sri3001
7 Replies

10. Shell Programming and Scripting

Counting number of single quotes in a string

i need to be able to count the number of single quotes ' in the entire string below: "description":"DevOps- Test VM's, System Admins Test VM's ", awk can most likely do this, but here's my attempt using egrep: echo "${STRING}" | egrep -wc '"'"\'"'"' or echo "${STRING}" | egrep -wc... (11 Replies)
Discussion started by: SkySmart
11 Replies
OPANNOTATE(1)						      General Commands Manual						     OPANNOTATE(1)

NAME
opannotate - produce source or assembly annotated with profile data SYNOPSIS
opannotate [ options ] [profile specification] DESCRIPTION
opannotate outputs annotated source and/or assembly from profile data of an OProfile session. See oprofile(1) for how to write profile specifications. OPTIONS
--assembly / -a Output annotated assembly. If this is combined with --source, then mixed source / assembly annotations are output. --demangle / -D none|smart|normal none: no demangling. normal: use default demangler (default) smart: use pattern-matching to make C++ symbol demangling more read- able. --exclude-dependent / -x Do not include application-specific images for libraries, kernel modules and the kernel. This option only makes sense if the profile session used --separate. --exclude-file [files] Exclude all files in the given comma-separated list of glob patterns. --exclude-symbols / -e [symbols] Exclude all the symbols in the given comma-separated list. --help / -? / --usage Show help message. --image-path / -p [paths] Comma-separated list of additional paths to search for binaries. This is needed to find modules in kernels 2.6 and upwards. --root / -R [path] A path to a filesystem to search for additional binaries. --include-file [files] Only include files in the given comma-separated list of glob patterns. --include-symbols / -i [symbols] Only include symbols in the given comma-separated list. --objdump-params [params] Pass the given parameters as extra values when calling objdump. --output-dir / -o [dir] Output directory. This makes opannotate output one annotated file for each source file. This option can't be used in conjunction with --assembly. --search-dirs / -d [paths] Comma-separated list of paths to search for source files. You may need to use this option when the debug information for an image contains relative paths. --base-dirs / -b [paths] Comma-separated list of paths to strip from debug source files, prior to looking for them in --search-dirs. --session-dir=dir_path Use sample database out of directory dir_path instead of the default location (/var/lib/oprofile). --source / -s Output annotated source. This requires debugging information to be available for the binaries. --threshold / -t [percentage] Only output data for symbols that have more than the given percentage of total samples. --verbose / -V [options] Give verbose debugging output. --version / -v Show version. ENVIRONMENT
No special environment variables are recognised by opannotate. FILES
/var/lib/oprofile/samples/ The location of the generated sample files. VERSION
This man page is current for oprofile-0.9.6. SEE ALSO
/usr/share/doc/oprofile/, oprofile(1) 4th Berkeley Distribution Tue 06 July 2010 OPANNOTATE(1)
All times are GMT -4. The time now is 12:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy