Visit Our UNIX and Linux User Community


No. of underscores in a file name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting No. of underscores in a file name
# 1  
Old 09-13-2013
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
# 2  
Old 09-13-2013
Try:
Code:
find . -name "*_*_*"

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 09-13-2013
Hi
Thank you for your quick response.
Adding to that..how can i find whether a particular variable has two underscores in it.
suppose var=a_b_c
i want to know if var has two underscores or not
# 4  
Old 09-13-2013
Code:
echo "$var" | grep ".*_.*_.*" > /dev/null && echo "$var has two or more underscores"

# 5  
Old 09-13-2013
A longhand version using an OSX 10.7.5 terminal...
Code:
Last login: Fri Sep 13 12:52:40 on ttys000
AMIGA:barrywalker~> text="a_b_c"; count=0; for n in $( seq 0 1 ${#text} ); do if [ "${text:$n:1}" == "_" ]; then count=$[ ( $count + 1 ) ]; fi; done; echo""; echo "Underscores = $count"

Underscores = 2
AMIGA:barrywalker~> _

# 6  
Old 09-13-2013
Quote:
Originally Posted by wisecracker
Code:
text="a_b_c"; count=0; for n in $( seq 0 1 ${#text} ); do if [ "${text:$n:1}" == "_" ]; then count=$[ ( $count + 1 ) ]; fi; done; echo""; echo "Underscores = $count"

If your shell supports substring expansion (${text:$n:1}), then you can probably replace all of that with a much simpler, pattern substitution alternative:
Code:
u=${text//[!_]/}
echo Underscores = ${#u}

Regards,
Alister
This User Gave Thanks to alister For This Post:
# 7  
Old 09-13-2013
Hi alister...

Thanks for that one...

I read it that the OP wanted a number that can be used for detecting further in a script.
Yours shortening works except I changed your "u" variable for count, but...
Code:
Last login: Fri Sep 13 19:30:46 on ttys000
AMIGA:barrywalker~> text="a_b_c"
AMIGA:barrywalker~> count=${text//[!_]/}
AMIGA:barrywalker~> echo "$count"
__
AMIGA:barrywalker~> echo ${#count}
2
AMIGA:barrywalker~> count=$(echo -n ${#count})
AMIGA:barrywalker~> echo "$count"
2
AMIGA:barrywalker~> _

Re-using the "count" variable...
Code:
count=$(echo -n ${#count})

...keeps the variables to two including the "text" test variable otherwise there would have to be a third variable. The "count" variable is now a number...

Previous Thread | Next Thread
Test Your Knowledge in Computers #209
Difficulty: Medium
The development work for OSPF prior to its publication as open standard was undertaken largely by the Digital Equipment Corporation.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script (sh file) logic to compare contents of one file with another file and output to file

Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get... (22 Replies)
Discussion started by: pottic
22 Replies

2. 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

3. 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

4. Shell Programming and Scripting

Compare 2 text file with 1 column in each file and write mismatch data to 3rd file

Hi, I need to compare 2 text files with around 60000 rows and 1 column. I need to compare these and write the mismatch data to 3rd file. File1 - file2 = file3 wc -l file1.txt 58112 wc -l file2.txt 55260 head -5 file1.txt 101214200123 101214700300 101250030067 101214100500... (10 Replies)
Discussion started by: Divya Nochiyil
10 Replies

5. 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

6. Shell Programming and Scripting

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 (7 Replies)
Discussion started by: pracheth
7 Replies

7. Shell Programming and Scripting

Match list of strings in File A and compare with File B, C and write to a output file in CSV format

Hi Friends, I'm a great fan of this forum... it has helped me tone my skills in shell scripting. I have a challenge here, which I'm sure you guys would help me in achieving... File A has a list of job ids and I need to compare this with the File B (*.log) and File C (extend *.log) and copy... (6 Replies)
Discussion started by: asnandhakumar
6 Replies

8. 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

9. 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

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