Changing the file name format


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Changing the file name format
# 1  
Old 10-09-2014
Changing the file name format

Hello all,
I am tryign to change the format of files (which are many in numbers). They at present are named like this:

Code:
SomeProcess_M-130_100_1_3BR.root
SomeProcess_M-130_101_2_3BX.root
SomeProcess_M-130_103_3_3RY.root
SomeProcess_M-130_105_1_3GH.root
SomeProcess_M-130_99_1_3LF.root
SomeProcess_M-130_98_1_3OL.root

Code:
For my task, its important for them to have the following format:
SomeProcess_M-130_101_2_3BX.root 
will become:
SomeProcess_M-130_101.root

and rest all as well.


Look forward for replies..

well thanks in advance,
emily
# 2  
Old 10-09-2014
Here is one approach using parameter substitution:-
Code:
#!/bin/ksh

for file in SomeProcess_M-130_*.root
do
        n_file="${file%_*}"
        n_file="${n_file%_*}"
        print mv "$file" "${n_file}.root"
done

Remove the highlighted print and rerun if output looks good.
This User Gave Thanks to Yoda For This Post:
# 3  
Old 10-09-2014
Quote:
Originally Posted by Yoda
Here is one approach using parameter substitution:-
Code:
#!/bin/ksh

for file in SomeProcess_M-130_*.root
do
        n_file="${file%_*}"
        n_file="${n_file%_*}"
        print mv "$file" "${n_file}.root"
done

Remove the highlighted print and rerun if output looks good.
Hi, I need to preserve another field as well
Code:
SomeProcess_M-130_100

and this _100 keep changing from file to file.

thank you
# 4  
Old 10-09-2014
Quote:
Originally Posted by emily
Hi, I need to preserve another field as well
Code:
SomeProcess_M-130_100

and this _100 keep changing from file to file.

thank you
Show the input you have and the output you want.
# 5  
Old 10-09-2014
Code:
Input:
SomeProcess_M-130_100_1_3BR.root
SomeProcess_M-130_101_2_3BX.root
SomeProcess_M-130_103_3_3RY.root
SomeProcess_M-130_105_1_3GH.root
SomeProcess_M-130_99_1_3LF.root
SomeProcess_M-130_98_1_3OL.root


Output:
SomeProcess_M-130_100.root
SomeProcess_M-130_101.root
SomeProcess_M-130_103.root
SomeProcess_M-130_105.root
SomeProcess_M-130_99.root
SomeProcess_M-130_98.root

This User Gave Thanks to emily For This Post:
# 6  
Old 10-09-2014
Another way using IFS and set:
Code:
#!/bin/bash

OIFS=$IFS

for ofile in SomeProcess_M-130_*.root
do
    IFS=_
    set $ofile
    IFS=$OIFS
    nfile="$1_$2_$3.root"
    printf "mv %s %s\n" ${ofile} ${nfile}
done

This User Gave Thanks to fpmurphy For This Post:
# 7  
Old 10-09-2014
thanking you, it worked all fine on these set of files..:-)
However,while working I realized I have second set of files as well, where it did not work...:-( I tried modifying, did not work...little input would be great..

Code:
Input:
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_63_1_JUz.root
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_64_1_Klr.root
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_69_1_L9e.root

Output:
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_63.root
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_64.root
TTFH_MC_SomeProcess_M-130_8TeV-pythia6-tauola_69.root


Quote:
Originally Posted by fpmurphy
Another way using IFS and set:
Code:
#!/bin/bash

OIFS=$IFS

for ofile in SomeProcess_M-130_*.root
do
    IFS=_
    set $ofile
    IFS=$OIFS
    nfile="$1_$2_$3.root"
    printf "mv %s %s\n" ${ofile} ${nfile}
done

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing format of file with awk

Hi all, I have a file that looks like this: Closest words to: manifesto >>>> Closest words to: passport >>>> and I want to reformat this with awk with the following desired result: manifesto 0.99999999999999978, 'manifesto' 0.72008211381623111, 'communiqu\xe9'... (5 Replies)
Discussion started by: owwow14
5 Replies

2. Shell Programming and Scripting

Changing date format in CSV file

I have a CSV file with a date format like this; 11/19/2012 17:37:00,1.372,121.6 11/19/2012 17:38:00,0.743,121.6 Want to change the time stamp to seconds after 1970 so I can get the data in rrdtool. For anyone interested, this is data from a TED5000 unit and is Kwatts and volts. Needs to... (3 Replies)
Discussion started by: ottsm
3 Replies

3. Shell Programming and Scripting

Command for changing date format in a file

Hi... I have an inputfile name as :- abc_test_20120213.dat (date in yyyymmdd format) I need the output file name as abc_test_13022012.dat (date in ddmmyyyy format) Please help me on this... Thanks in advance. (5 Replies)
Discussion started by: gani_85
5 Replies

4. Shell Programming and Scripting

how I can add a constant to a field without changing the file format

Hi, I need to edit a file Protein Data Bank (pdb) and then open that file with the program VMD but when I edit the file with awk, it changes pdb format and the VMD program can not read it. I need to subtract 34 to field 6 ($ 6). this is a pdb file : ATOM 918 N GLY B 103 -11.855 8.675... (8 Replies)
Discussion started by: bio_
8 Replies

5. UNIX for Dummies Questions & Answers

Changing from Excel date format to MySQL date format

I have a list of dates in the following format: mm/dd/yyyy and want to change these to the MySQL standard format: yyyy-mm-dd. The dates in the original file may or may not be zero padded, so April is sometimes "04" and other times simply "4". This is what I use to change the format: sed -i '' -e... (2 Replies)
Discussion started by: figaro
2 Replies

6. Shell Programming and Scripting

Changing the text file format

Hi, I have a shell script to unload all the empname who have salary >50000 from the emp table into a text file(empname.txt) . m_db unload "$dbc_file" -column_delimiter ',' -select "SELECT empname FROM emp where salary > 50000" >> empname.txt Now my text file have data in the following format ... (3 Replies)
Discussion started by: kavithakuttyk
3 Replies

7. Shell Programming and Scripting

changing the format of CSV file

Hi Experts, Please help me to get the following from script for Unix ENvironment(shell, perl, tr, sed, awk). INPUT FILE: 20K,ME,592971 20K,YOU,2 20K,HE,1244998 50K,YOU,480110 50K,ME,17 50K,HIS,10 50K,HE,1370391 OUTPUT FILE: K,ME,YOU,HE,HIS 20K,592971,2,1244998,0... (5 Replies)
Discussion started by: ashis.tewari
5 Replies

8. Shell Programming and Scripting

changing month in Mmm format to mm FORMAT

i have an variable mydate=2008Nov07 i want o/p as in variable mymonth=11 (i.e nov comes on 11 number month) i want some command to do this for any month without using any loop. plz help me (1 Reply)
Discussion started by: RahulJoshi
1 Replies

9. UNIX for Dummies Questions & Answers

Changing display and format of file

I have an input file which looks like this: 601 a 602 a 603 a 601 b 610 c 615 c 603 d 601 d 612 d I need the utput to look like this 601 a 602 603 602 a 601 603 603 a 601 602 601 b 610 c 615 615 c 610 603 d 601 612 (1 Reply)
Discussion started by: wahi80
1 Replies

10. Shell Programming and Scripting

changing format

Dear Experts, Currently my script is gereating the output like this as mentioned below. 8718,8718,0,8777 7450,7450,0,7483 5063,5063,0,5091 3840,3840,0,3855 3129,3129,0,3142 2400,2400,0,2419 2597,2597,0,2604 3055,3055,0,3078 4249,4249,0,4266 4927,4927,0,4957 8920,8920,0,8978... (4 Replies)
Discussion started by: shary
4 Replies
Login or Register to Ask a Question