Problem with use of the ? wildcard in regex substitution.


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Problem with use of the ? wildcard in regex substitution.
# 1  
Old 09-28-2013
Problem with use of the ? wildcard in regex substitution.

I'm trying to use Larry Wall's rename (prename) tool to rename multiple files:

Code:
    $ ls -1
    blar.m4mp3
    BLAH.mpmp3
    bar foo.m4mp3
    foo bar.mpmp3

I'm trying to fix the extensions so they're all .mp3:

Code:
    rename 's/m?mp3/mp3/' *mp3

I expect m?mp3 to match the extensions, and I expect them to be substituted with mp3. But I can't seem to get it to match and work correctly.

What am I doing wrong?

Last edited by Scott; 09-28-2013 at 10:05 PM.. Reason: Code tags
# 2  
Old 09-28-2013
In a regular expression ? matches 0 or 1 of the preceding expression. If you want to match (almost) any character, try using . (period) instead.

Code:
rename 's/m.mp3/mp3/' *mp3

This User Gave Thanks to Scott For This Post:
# 3  
Old 09-28-2013
A safe match is
Code:
rename 's/\.m.mp3$/.mp3/' *mp3


Last edited by MadeInGermany; 09-28-2013 at 10:36 PM..
This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 09-28-2013
Thank you very much. That was confusing.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with sed substitution / regex

Hi all, please can anyone show me how to use sed and regular expressions to achieve the following. If a line contains a capital A followed by exactly 5 or 6 characters followed by an angled bracket then insert an asterix before the angled bracket. So: XCONFIGA12345<X Becomes: ... (5 Replies)
Discussion started by: Jedimark
5 Replies

2. Shell Programming and Scripting

wildcard in regex for awk

Hello I have a file like : 20120918000001413 | 1.17.163.89 | iSelfcare | MSISDN | N 20120918000001806 | 1.33.27.100 | iSelfcare | 5564 | N .... I want to extract all lines that have on 4th field (considering "|" the separator ) something other than just digits. I want to do this using a... (5 Replies)
Discussion started by: black_fender
5 Replies

3. UNIX for Advanced & Expert Users

sudo wildcards problem: for every argument a *-wildcard? Better solution?

Hi I allow the user tommy to run this command as root sudoCommand: /app/appname/connectors/*/*/current/bin/*With "sudo -l" he sees the sudoers, but is unable to execute. $ sudo /app/appname/connectors/zur/namename/current/bin/othername agentsvc --i --u root --sn 1m7command Sorry, user... (2 Replies)
Discussion started by: slashdotweenie
2 Replies

4. Shell Programming and Scripting

wildcard in sed substitution

I have a number of strings that I want to remove: <b>Task: 100</b> <b>Task: 1100 </b> <b>Task: 2200 </b> But the numbers in them can vary from 4, 5 8, digits in length. But, no alpha chars. I tried this: sed '/Task:/,//d' $file > tmpfile ; mv tmpfile $file But it removed additional text on... (5 Replies)
Discussion started by: dba_frog
5 Replies

5. Shell Programming and Scripting

Another substitution problem

Hello again, I'm trying to change the following line: INSERT INTO PH1_TX_LOAD VALUES ('TX-78731-AABSS:4182-4','RH: GUIDE TO TENNIS',TO_DATE('18-JUN-2001:00:00:00', 'DD-MON-YYYY:HH24:MI:SS'),TO_DATE('21-JUN-2001:00:00:00', 'DD-MON-YYYY:HH24:MI:SS'),500) so that any TO_DATE is taken... (6 Replies)
Discussion started by: user_invalid
6 Replies

6. Shell Programming and Scripting

Problem when concatinating wildcard onto file location in bash script

I am having difficulty with the following script: #! /bin/bash filelist=~/data/${1}* ~/./convertFile $filelist ~/temp/outputEssentially, there are a large number of files in the directory ~/data, each with a four-letter code at the beginning (eg. aaaa001 aaaa002 bbbb001 bbbb002 etc). The... (11 Replies)
Discussion started by: Lears_Fool
11 Replies

7. Solaris

Problem in using wildcard characters in xargs with find

Hi, Under my parent diectory I have directory named "Response" in many of its subfolders. I am interested to see all files with extention .pro in Response Directory. I am giving following command - find . -name "Response" -type d | xargs -i ls -lrt {}/*.pro but it is not giving result. ... (3 Replies)
Discussion started by: sanjay1979
3 Replies

8. Shell Programming and Scripting

sed help/wildcard substitution

I need to perform the following substitutions and have been struggling to determine if or how I can do this with sed or perl. I need to change the string foo(bar) to moo(bar,0) wherever this occurs in a file. Is there a way to do this? I'm thinking there might be a wildcard of some sort that... (4 Replies)
Discussion started by: Mike@NZ
4 Replies

9. AIX

VI Substitution problem

I'm having a problem getting my variables to work in dishing out an RMC script. The $1 works fine. $2 does not Here's a portion of the script: server=$1 filesystem1=$2 # dsh -w $1 'mkcondition -c "/var space used" -s "Name == \"$2\"" -e "PercentTotUsed > 90" -d "An event will be generated... (7 Replies)
Discussion started by: gravy26
7 Replies

10. UNIX for Dummies Questions & Answers

Find wildcard .shtml files in wildcard directories and removing them- How's it done?

I'm trying to figure out how to build a small shell script that will find old .shtml files in every /tgp/ directory on the server and delete them if they are older than 10 days... The structure of the paths are like this: /home/domains/www.domain2.com/tgp/ /home/domains/www.domain3.com/tgp/... (1 Reply)
Discussion started by: Neko
1 Replies
Login or Register to Ask a Question