And without needing to invoke awk, you can do this entirely in the shell using:
Code:
for f in *_*_*_*.*
do echo mv "$f" "${f%%_*}_${f#*_[0-9][0-9][0-9][0-9][0-9][0-9]}"
done
Despite what you learned in the last thread you started, what you need here is filename pattern matching and parameter expansion; not regular expressions. Filename patterns and REs are similar in some ways and very different in others. With an extended regular expression, you can match a specific number of a certain RE by enclosing the RE in parentheses in and following with that with \{number\}. But that isn't available in standard filename pattern matching. The parameter expansion ${f%%_*} expands $f with the longest string starting with _ removed from the end of the string (in this case expanding to ABC) and the parameter expansion ${f#*_[0-9][0-9][0-9][0-9][0-9][0-9]} expands $f with the shortest string ending with _ followed by seven digits from the start of the string (in this case 6197_20130708_203556.95336).
Note that you need to be sure that this is going to do what you want before you actually do it. The echo in red above shows you what it will do without actually renaming any of the files. If you run the script as shown using bash and the output looks right, remove the echo and run it again to actually rename the files. If you run this twice (without the echo) it will get rid of all 10 digits between the 1st two underscores in your filenames (and you won't have any way to recreate the original names) unless you make a backup copy of your files before you rename them.
Last edited by Don Cragun; 07-13-2013 at 02:08 AM..
Reason: Fix typo.
Greetings! I found this fourm via a google search on "sed expressions".
I have a file that contains notices and they are all the same length in lines. For example the file would contains 15 notices, each being 26 lines each. I need some way to eliminate notices that contain a "S" in a particular... (8 Replies)
I've been trying to remove some lines of a xml file that looks like this:
<parent>
<child>name1</child>
<lots_of_other tags></lots_of_other_tags>
</parent>
<parent>
<child>name2</child>
<lots_of_other tags></lots_of_other_tags>
</parent>
<parent>
<child>name3</child>
... (5 Replies)
Hi all,
Can I edit this script:
find . -type f | while read i;do && mv "$i" "${i//abc/}" ;done
so that it will not only take out abc from the filename but also take out any numbers that might be in the filename as well.
An example would be,
Input:
filename abc 2009.mov
Output:... (7 Replies)
hi
how to remove extensions of a file.. suppose i have a filename "gtk2-2.4.13-24.el4.x86_64.rpm" and i want the file name as "gtk2-2.4.13-24.el4" means want to remove last two "." extensions of a file
can anyone help me in this
thanks in advance
srik (12 Replies)
Hi,
I have a list of paths with files at the end. How can strip off filenames.
This is what I have:
/apps/test/abc/file.txt
/apps/new/home/daily/report.xml
/apps/old/home/weekly/out/test.sh
This is what I need:
/apps/test/abc/
/apps/new/home/daily/
/apps/old/home/weekly/out/
... (10 Replies)
I have a string like this /Development/ST/st000001su/Outbound/Prod/PROD-732QCJ/63acf2caf91bc136cb9bcce8a85c7fa8/PGP/PGP.txt
I want to remove the PGP.txt and I want only the /Development/ST/st000001su/Outbound/Prod/MCFR-732QCJ/63acf2caf91bc136cb9bcce8a85c7fa8/PGP returned.
I saw an command... (2 Replies)
Hi All,
I have different type of file (.txt,.csv,.xml) format in my current directory. My requirement is that I need to remove the last character from the file format.
Example
count.txt$
csp_rules.csv^
Date.xml~
Need Output:
count.txt
csp_rules.csv
Date.xml
How to do that?.... (5 Replies)
Hi All!
Please can someone help, I have a dir with the following files:
~-rw-r--r-- 1 emmuser users 2087361 Oct 16 15:50 MPGGSN02_20131007234519_24291.20131007
-rw-r--r-- 1 emmuser users 2086837 Oct 16 15:50 MPGGSN02_20131007233529_24272.20131007
-rw-r--r-- 1 emmuser ... (7 Replies)
Hi team,
Here's a requirement for me.
Here are the list of files i have in a unix directory.
W 2 A D_2014.csv
W 3 A D_2014.csv
W 4 A D_2014.csv
/home/kmani00-> uname -a
AIX sliyyvxx 1 6 00F613E54C00
/home/kmani00->
The file names has to be without spaces as follows.
W2AD_2014.csv... (1 Reply)
Hi,
I have a file with many sections in it. Each section is separated by a blank line.
The first line of each section would determine if the section is duplicate or not.
if the section is duplicate then remove the entire section from the file.
below is the example of input and output.... (5 Replies)
Discussion started by: ahmedwaseem2000
5 Replies
LEARN ABOUT OSF1
rmm
rmm(1) General Commands Manual rmm(1)NAME
rmm - remove messages (only available within the message handling system, mh)
SYNOPSIS
rmm [+folder] [msgs] [-help]
OPTIONS
Prints a list of the valid options to this command.
The default settings for this command are:
+folder defaults to the current folder msgs defaults to the current message
DESCRIPTION
The rmm command deletes the current message from the current folder.
You can specify messages and folders other than the current ones by using the +folder and msgs arguments.
The current message is not changed by rmm, so a next will advance to the next message in the folder as expected.
If you have defined a component rmmproc: in your file, then instead of simply renaming the message file, rmm will call the named program to
delete the file.
The rmm command removes messages by renaming the message files with a preceding comma. Many sites consider files that start with a comma to
be a temporary backup, and arrange for cron(8) to remove such files once a day.
PROFILE COMPONENTS
Path: To determine your Mail directory
rmmproc: Program to delete the message
FILES
The user profile.
SEE ALSO rmf(1)rmm(1)