Sponsored Content
Top Forums UNIX for Dummies Questions & Answers find & remove characters in filenames Post 302582851 by ryran on Sunday 18th of December 2011 10:04:24 PM
Old 12-18-2011
Quote:
Originally Posted by radoulov
Code:
find . -type f -name '*[:?"]*' |
  while IFS= read -r; do
    mv -- "$REPLY" "${REPLY//[:?\"]}"
  done

Very nice radoulov! I'm a bash dude and was familiar with ${VAR/MATCH/REPLACE/} syntax but didn't know about all the extra details, so was a bit confused at first. For anyone else that's looking for an explanation, here's the relevant bit from bash's man page:
Code:
${parameter/pattern/string}
   Pattern substitution.  The pattern is expanded to produce  a  pattern  just  as  in  
   pathname expansion.  Parameter is expanded and the longest match of pattern against
   its value is replaced with string.  If pattern begins with /, all matches  of  pat‐
   tern are replaced with string.  Normally only the first match is replaced.  If pat‐
   tern begins with #, it must match at the beginning of the expanded value of parame‐
   ter.   If  pattern begins with %, it must match at the end of the expanded value of
   parameter.  If string is null, matches of pattern are deleted and the  /  following
   pattern  may  be  omitted.   If  parameter is @ or *, the substitution operation is
   applied to each positional parameter in turn, and the expansion  is  the  resultant
   list.   If parameter is an array variable subscripted with @ or *, the substitution
   operation is applied to each member of the array in turn, and the expansion is  the 
   resultant list.

PS: Can you explain what exactly "IFS=" is doing in there?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl code to search for filenames that contain special characters

Hello, I have a requirement to search a directory, which contains any number of other directories for file names that contain special characters. directory structure DIR__ |__>DIR1 |__>DIR2__ |__>DIR2.1 |__>DIR2.2 |__>DIR3 .. ... (8 Replies)
Discussion started by: jerardfjay
8 Replies

2. Shell Programming and Scripting

Script to find and remove characters

Hi. I have many files in a folder, and even more in the subfolders. I need a script that finds and removes certain characters (them being /n in this one) in the files in the folder and it's subfolders. So, could someone write me a script that works in Linux, does this: Searchs for "/n" in... (5 Replies)
Discussion started by: Zerby
5 Replies

3. Shell Programming and Scripting

Filenames created with '\r' characters at the end

Hi all, Am creating files and doing copy,compare and deletion. As i do not want to mention the filepath everywhere, i store the filepaths in variables. FILENAME="/home/test/create/Myfile.txt" WR_PATH="/home/test/wrie/writefile.txt" RD_PATH="/home/test/myread/readfile.txt" echo "This is my... (2 Replies)
Discussion started by: amio
2 Replies

4. Shell Programming and Scripting

Bash script - stripping away characters that can't be used in filenames

I want to create a temp file which is named based on a search string. The search string may contain spaces or characters that aren't supposed to be used in filenames so I want to strip those out. My thought was to use 'tr' with but the result is the opposite of what I want: $ echo "test... (5 Replies)
Discussion started by: mglenney
5 Replies

5. Shell Programming and Scripting

Find duplicate filenames and remove in different mount point

Hi Gurus, Do any kind souls encounter have the same script as mentioned here. Find and compare filenames in different mount point and remove duplicates. Thanks a million!!! wanna13e (7 Replies)
Discussion started by: wanna13e
7 Replies

6. Shell Programming and Scripting

Single/Multiple Line with Special characters - Find & Replace in Unix Script

Hi, I am creating a script to do a find and replace single/multiple lines in a file with any number of lines. I have written a logic in a script that reads a reference file say "findrep" and populates two variables $FIND and $REPLACE print $FIND gives Hi How r $u Rahul() Note:... (0 Replies)
Discussion started by: r_sarnayak
0 Replies

7. Shell Programming and Scripting

Perl: windows filenames escape characters

I have a perl find program that will find all files of window application stored on unix disks. Ofcourse these files contain all the weird characters windows allows, but on *nix pukes out all kinds of unwanted effects when processing these. Is their a utility that will escape all these... (3 Replies)
Discussion started by: karelb
3 Replies

8. Shell Programming and Scripting

How best to remove certain characters from filenames and folders recursively

hello, I'm trying to figure out which tool is best for recursively renaming and files or folders using the characters \/*?”<>| in their name. I've tried many examples that use Bash, Python and Perl, but I'm not much of a programmer I seem to have hit a roadblock. Does anyone have any... (15 Replies)
Discussion started by: prometheon123
15 Replies

9. Shell Programming and Scripting

Delete characters & find unique IP addresses with port

Hi, I have a file having following content. <sip:9376507346@97.208.31.7:51088 <sip:9907472291@97.208.31.7:51208 <sip:8103742422@97.208.31.7:51024 <sip:9579892841@97.208.31.7:51080 <sip:9370904222@97.208.31.7:51104 <sip:9327665215@97.208.31.7:51104 <sip:9098364262@97.208.31.7:51024... (2 Replies)
Discussion started by: SunilB2011
2 Replies

10. UNIX for Beginners Questions & Answers

To remove any invisible and special characters from the file(exclude @!#$&*)

Hi Guys, My requirement is to remove any invisible and special characters from the file like control M(carriage return) and alt numerics and it should not replace @#!$% abc|xyz|acd¥£ó adc|123| 12áí Please help on this. Thanks Rakesh (1 Reply)
Discussion started by: rakeshp
1 Replies
EvmEventNameMatch(3)					     Library Functions Manual					      EvmEventNameMatch(3)

NAME
EvmEventNameMatch(), EvmEventNameMatchStr() - match EVM event name SYNOPSIS
Library EVM Support Library Parameters pattern The event name pattern sought. The pattern may be any valid event name string. It may include wildcard characters in place of any component. event The event containing the event name to be compared against the pattern. match The result of the match. This operand is set to if the name matches the pattern, and to if it does not. candidate A character string to be matched against the pattern DESCRIPTION
Because special matching rules apply when deciding whether a candidate event name matches a known name, the EVM name matching functions should be used for matching purposes, rather than the C string comparison functions The EVM functions match an event name against a sup- plied pattern, ignoring any trailing appended components in the candidate name, and correctly matching wildcard characters. The function takes an event and an event name pattern as input, and returns an indication of whether the event contains a name which matches the pattern in the match output argument. The pattern may be any valid event name string, and may also include wildcard characters in place of any component. A wildcard in the pattern matches zero or more name components. A matches exactly one component. A match occurs if the event name matches all components indicated by the pattern, even if the name has additional trailing elements. The function performs the same check as but takes a character string as the candidate event name, instead of extracting the candidate event name from a supplied event. Both functions set the match output argument to if the name matches the pattern, and to if it does not. RETURN VALUE
The operation completed without error. The comparison was successful. The value of the match operand indicates whether the name matches the pattern. One of the arguments to the function is invalid. The supplied pattern contains invalid characters. The supplied event does not contain a name. ERRORS
The value of is not set. SEE ALSO
Routines memccpy(3C), strcat(3C). Event Management EVM(5). EVM Events EvmEvent(5). EvmEventNameMatch(3)
All times are GMT -4. The time now is 10:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy