Visit Our UNIX and Linux User Community


How to find no of underscores in a variable?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to find no of underscores in a variable?
# 1  
Old 09-13-2013
How to find no of underscores in a variable?

Hi
i have a variable var=a_b_c
i want command to find no. of underscores in a variable

Thank you
# 2  
Old 09-13-2013
one way:
Code:
a=$(echo "$var" | tr -d '[:alpha:]' )
echo ${#a}

# 3  
Old 09-13-2013
Quote:
Originally Posted by jim mcnamara
one way:
Code:
a=$(echo "$var" | tr -d '[:alpha:]' )
echo ${#a}


Hi can you explain the usages of each command that you used.

What tr -d does?
'[:alpha:]'
??
# 4  
Old 09-13-2013
another way to do it is by using awk:
Code:

echo a_b_c | awk -F_ '{print NF-1}'

# 5  
Old 09-13-2013
Quote:
Originally Posted by targetshell
Hi can you explain the usages of each command that you used.

What tr -d does?
'[:alpha:]'
??
Code:
tr -d list

Delete the characters found in the list from the input stream.
Code:
[:alpha:]

A special character class. In this case instead of listing all the letters from a to z and A to Z use this shorthand. A list of these can be found here

Andrew
# 6  
Old 09-13-2013
Quote:
Originally Posted by jim mcnamara
Code:
tr -d '[:alpha:]'

To count the number of underscores, the most robust solution deletes everything that isn't an underscore.
Code:
tr -cd _

Regards,
Alister
# 7  
Old 09-13-2013
Using pure Bash (straight, no chaser) Smilie:

Code:
var="a_b_c"
count="${var//[^_]}"
echo "${#count}"
2


Previous Thread | Next Thread
Test Your Knowledge in Computers #688
Difficulty: Medium
The first computer to implement architectures enabling reverse Polish notation (RPN) was the Apple I computer.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace spaces with underscores up to first comma but not after the comma

I have a comma delimited file of major codes and descriptions. I want to replace all occurrences of spaces with underscores up to the first comma (only in the first field), but not replace spaces following the comma. For instance I have the following snippet of the file: EK ED,Elementary and... (7 Replies)
Discussion started by: tdouty
7 Replies

2. Shell Programming and Scripting

How to separate data with varying amounts of underscores?

All, I've searched and haven't found a solution for my particular issue. I have a file with lines of data that contain varying amounts of underscores imbedded. But all the strings have a final underscore and an interface name: dmk_hcn_dalian2.XXXX.XXX.XX.COM_Se0/0/0... (4 Replies)
Discussion started by: turk22
4 Replies

3. UNIX for Dummies Questions & Answers

Appending "_" (underscores) to variable names

Hello, I have a file, inputs.list that contain prefixes to files that are inputs for a program inputs.list A B C D E ... My files are of the format A_1, A_2, B_1, B_2 and so on. I am planning to run a shell script that takes each line from the above file and feed it to the runProg.sh... (3 Replies)
Discussion started by: Gussifinknottle
3 Replies

4. Shell Programming and Scripting

No. of underscores in a file name

Hi I want to filter my files which has more than 1 underscores in it.how can i achieve this. Ex: if my file name is a_b_c, a_b. my command should result only a_b_c Thanks Pracheth (10 Replies)
Discussion started by: pracheth
10 Replies

5. Shell Programming and Scripting

Find string in variable

korn shell, testing if a pattern exist in a string, x is constant, y could be none,all or any combination of the elements of x, x="aa bb cc dd ee ff gg hh ii jj kk ll" y="ff kk" for z in `echo ${x}` do if <any pattern in $y matches any pattern in $x> ] then do something fi... (3 Replies)
Discussion started by: squrcles
3 Replies

6. Shell Programming and Scripting

extract string from file name between two underscores

Hi, Here is my question, I need to extract string between two underscores from the filename for example, filename is atmos_8xdaily_instant_300x300_1_12.nc what I want to extract is 300x300. There are many such files in my directory, so I guess the code should be like: for file... (7 Replies)
Discussion started by: 1988PF
7 Replies

7. Shell Programming and Scripting

Scripting to convert underscores to spaces

Greetings, I have a bunch of music files that I want to strip the underscores out, and leave only spaces. All that I've found on the web is how to add underscores to files that have spaces, and reversing the "tr" command does not make a difference. Here is how to convert spaces to... (6 Replies)
Discussion started by: brakeb
6 Replies

8. Shell Programming and Scripting

find and replace variable

Is there an easy way of doing this cat file1 jkasjhjgfg LTRIM(RTRIM(aa_bb_cde)) aragsfdg LTRIM(RTRIM(aa_bb_cde)) aregfafdgfg sdgsfdagdfg gadfg eafgsadgsa asdgsfdgag LTRIM(RTRIM(aa_bb_cde)) rfghsdfhd I want to replace each occurence of LTRIM(RTRIM($x)) with LENGTH(LTRIM(RTRIM($x)))=0... (4 Replies)
Discussion started by: alfredo123
4 Replies

9. UNIX for Advanced & Expert Users

Find a environment variable Value !

There is shell script which contains some variables . These variables are used , but they have not declared in the script. I think its a environment variable, so I want to know where these variables are set and given values In .profile or .login..or where to c Please give the full path and... (1 Reply)
Discussion started by: tkbharani
1 Replies

10. UNIX for Dummies Questions & Answers

change spaces to underscores script !!!

Hi everybody! Im not good in scripting and I need a script to take all the files with spaces in their names and change it to underscores. alice cooper.mp3 >> alice_cooper.mp3 Thanks in advance. (2 Replies)
Discussion started by: piltrafa
2 Replies

Featured Tech Videos