1833527 Members
3257 Online
110061 Solutions
New Discussion

Awk

 
SOLVED
Go to solution
Francesco_13
Regular Advisor

Awk

Hi,
i have many files with bad extentions.

File.fmb.fmx.fmx

I need to mv all file to right name file.fmx

How i can do it for change all names ?

for i in `ls *.fmb.fmx.fmx`
do
echo change Form $i ....
???????
done
===============
Thanks.
Best regards.
Francesco
7 REPLIES 7
Jean-Luc Oudart
Honored Contributor
Solution

Re: Awk

If I understand your query

for i in `ls *.fmb.fmx.fmx`
do
FILE=$(echo $i | cut -f1 -d".")
mv $i ${FILE}.fmx
done
fiat lux
Mark Grant
Honored Contributor

Re: Awk

for i in `ls *.fmb.fmx.fmx`
do
echo change Form $i ....
mv $i `basename $i ".fmb.fmx.fmx"`
done
Never preceed any demonstration with anything more predictive than "watch this"
Mark Grant
Honored Contributor

Re: Awk

Whoops sorry.

SHould be

for i in `ls *.fmb.fmx.fmx`
do
mv $i `basename $i .fmb.fmx.fmx`.fmx
done
Never preceed any demonstration with anything more predictive than "watch this"
Anupam Anshu_1
Valued Contributor

Re: Awk

Hi Francesco,

You can use the script below:

==============================
for i in `ls *.fmb.fmx.fmx`
do
file=`echo $i | cut -f1 -d"."`
mv $i $file.fmx
done
==============================

HTH,

Anshu
Waldemar Rosinski
New Member

Re: Awk

for OLDNAME in *.fmb.fmx.fmx
do
NEWNAME=`echo $OLDNAME| sed s/fmb.fmx.//`
mv $OLDNAME $NEWNAME
done
Tapas Jha
Valued Contributor

Re: Awk

Hi,

Or you can use awk like below:

for i in `ls *.fmb.fmx.fmx`
do
FILE=`echo $i|awk -F"." '{print $1}'`
mv $i $FILE.fmx
done


Rgds
Tapas
Tapas Jha
H.Merijn Brand (procura
Honored Contributor

Re: Awk

# perl -MFile::Copy -e'for(<*.fmx>){$f=$_;s/(\.fm[bx])*\.fmx$/.fmx/;$f eq $_ or move($f,$_)}'

will move

aa.fmb.fmx.fmx => aa.fmx
bb.fmx.fmx => bb.fmx
cc.fmb.fmx => cc.fmx
dd.fmx.fmb.fmx.fmx.fmb.fmb.fmx => dd.fmx
ee.fmx => ee.fmx (unchanged)
ff.fmb => ff.fmb (unchanged)
etc

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn