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 [:alnum:] but the result is the opposite of what I want:
Hi there, if i have some strings ie
test_324423
test_242332
test_767667
but I only want the number part (the bolded bit) how do I strip the leftmost 5 characters from the output so that i will have just
324423
242332
767667
any help would be greatly appreciated
Gary (5 Replies)
I am trying to strip out certain characters from a string on both (left & right) sides. For example, line=see@hear|touch, i only want to echo the "hear" part. Well i have tried this approach:
line=see@hear|touch
templine=${line#*@} #removed "see@"
echo ${templine%%\|*} #removed... (4 Replies)
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)
I'm trying to search all .odt files in a directory for a string in the text of the file.
I've found a bash script that works, except that it can't handle whitespace in the filenames.
#!/bin/bash
if ; then
echo "Usage: searchodt searchterm"
exit 1
fi
for file in $(ls *.odt); do
... (4 Replies)
I'm using a shell script to get user input with this command:
read UserInput
I would then like to take the "UserInput" variable and strip out all of the following characters, regardless of where they appear in the variable or how many occurrences there are:
\/":|<>+=;,?*@
I'm not sure... (5 Replies)
Dear experts,
my problem is pretty tricky.
I want to change a file (see attached input.txt), according to another file (help.txt). The output that is desired is in output.txt. The example is attached.
Note that
-dashes should not be treated specially, they are considered normal characters,... (2 Replies)
I have a group of files in different directories with characters such as " ? : in the file names. How do I find these files and remove these characters on mass?
Thanks (19 Replies)
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)
I wrote myself a small little shell script to clean up a file I have issues with. In particular, I am stripping down a fully qualified host/domain name to just the hostname itself. The script works, but from a performance standpoint, it's not very fast and I will be working with large data sets.
... (4 Replies)
Discussion started by: dagamier
4 Replies
LEARN ABOUT PHP
ereg_replace
EREG_REPLACE(3) 1 EREG_REPLACE(3)ereg_replace - Replace regular expressionSYNOPSIS
string ereg_replace (string $pattern, string $replacement, string $string)
DESCRIPTION
This function scans $string for matches to $pattern, then replaces the matched text with $replacement.
Warning
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
PARAMETERS
o $pattern
- A POSIX extended regular expression.
o $replacement
- If $pattern contains parenthesized substrings, $replacement may contain substrings of the form digit, which will be replaced
by the text matching the digit'th parenthesized substring; will produce the entire contents of string. Up to nine substrings
may be used. Parentheses may be nested, in which case they are counted by the opening parenthesis.
o $string
- The input string.
RETURN VALUES
The modified string is returned. If no matches are found in $string, then it will be returned unchanged.
EXAMPLES
For example, the following code snippet prints "This was a test" three times:
Example #1
ereg_replace(3) example
<?php
$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\1was", $string);
echo ereg_replace("(( )is)", "\2was", $string);
?>
One thing to take note of is that if you use an integer value as the $replacement parameter, you may not get the results you expect. This
is because ereg_replace(3) will interpret the number as the ordinal value of a character, and apply that. For instance:
Example #2
ereg_replace(3) example
<?php
/* This will not work as expected. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Output: 'This string has words.' */
/* This will work. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Output: 'This string has 4 words.' */
?>
Example #3
Replace URLs with links
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
'<a href="\0">\0</a>', $text);
?>
NOTES
Note
As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension. Calling this function will issue an E_DEPRECATED
notice. See the list of differences for help on converting to PCRE.
Tip
ereg_replace(3) is deprecated as of PHP 5.3.0. preg_replace(3) is the suggested alternative to this function.
SEE ALSO ereg(3), eregi(3), eregi_replace(3), str_replace(3), preg_replace(3), quotemeta(3).
PHP Documentation Group EREG_REPLACE(3)