03-20-2008
Quote:
Originally Posted by
abch624
Hi Alll,
I have a script that we use on the servers to change the name of files that have spaces in the name:
#!/bin/tcsh
set n = 0
foreach f ( * )
echo $f | grep " "
if ( $? == 0 ) then
mv "$f" `echo $f | sed -e "s/ /_/g"`
@ n += 1
endif
end
echo $n changed
I need to write a script which renames all ascii text files in the current directory by adding a number to their names before the “extension”. for example <name>_a<number>.<”extension”> for example creditA, creditB, creditC, debitA get changed to creditA1, creditB2, creditC3, debitA4. That is for changing all the files on the server to have a number in them......
I have this code which is wrong
#!/bin/tcsh
set n = 0
set m = 0
foreach f ( * )
file $f | grep "ascii text"
if ( $? == 0 ) then
mv "$f" `echo $f"_a"$m`
@ n += 1
@ m += 1
endif
end
I need to divide the $f into two parts one part before the . and the other part after the . but I dont know how. Any help
Any help...
try this
ctr=1
for i in *
do
var1=`file $i |awk '{printf "%s\n",$3}'`
if [ $var1 = "text" ]; then
filename=`ls $i | cut -f1 -d "."`
ext=`ls $i |awk -F "." '{printf "%s\n",$2}'`
mv $i $filename$ctr.$ext
ctr=`expr $ctr + 1`
fi
done
Thanks
Antony cecil
~
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
i have a set of *.lst files. now i want to change the names from "lst" to "dat". how to do it?
ex.:
-rw-r--r-- 1 rram group 22 Sep 21 13:10 a.lst
-rw-r--r-- 1 rram group 22 Sep 21 13:09 b.lst
-rw-r--r-- 1 rram group 22 Sep 21 13:10 c.lst... (4 Replies)
Discussion started by: raguramtgr
4 Replies
2. UNIX for Dummies Questions & Answers
Hi All,
Today I got a small problem while handling zipped files in PROD support.
There are files in this format and I had to grep them reading some contents
A.B.gz.C.D
where A,B,C and D stand for variables (like FIRST.NAME.gz.MIDDLE.LAST).
I know that these files are zipped files and If I... (1 Reply)
Discussion started by: adurga
1 Replies
3. UNIX for Dummies Questions & Answers
directory name = /usr/tom/1997
files -
ABC_1997_ST1_BCD.SQL
BCD_1997_ST1_EFG_SAB.SQL
TTT_EBC_1997_ST1_A.SQL
sub directory - /usr/tom/1997/jan
a) I want to just rename the all files ending with '.SQL' and also its contents in the 1997 directory(excluding subdirectories eg... (3 Replies)
Discussion started by: systemsb
3 Replies
4. UNIX for Dummies Questions & Answers
Hello!
I am not familiar with UNIX and I have this problem:
I need to move files from a UNIX machine to a PC. UNIX file names contain ":" as special character which is not recognized in a PC.
How can I change ":" for "_" in the name of a bunch of files in UNIX?
Thanks for your help. (7 Replies)
Discussion started by: Tygoon
7 Replies
5. UNIX for Dummies Questions & Answers
I have a list of files named ab_*.csv
I would like to remane them all by removing the ab_ and have *.csv
I did the following but I am surely missing something.
/* wrong script */
for i in `ls -1 ab_*`; do mv ab_$i $i; done
Thanks in advance. (1 Reply)
Discussion started by: jxh461
1 Replies
6. Shell Programming and Scripting
Hi all,
using a utility image file was named starting with blank space and a blank space in between. I want to rename the files.
file names are in the format " sb 12.tif"," sb 13.tif"," sb 14.tif" the files are in thousands. i want to rename as 12.tif, 13.tif, 14.tif....
thanks. (3 Replies)
Discussion started by: ahkverma
3 Replies
7. Shell Programming and Scripting
Hi All
I have a folder that contains hundreds of file with a names
3.msa
4.msa
21.msa
6.msa
345.msa
456.msa
98.msa
...
...
...
I need rename each of this file by adding "core_" in the begiining of each file such as
core_3.msa
core_4.msa
core_21.msa (4 Replies)
Discussion started by: Lucky Ali
4 Replies
8. Shell Programming and Scripting
Hi,
I have a list of files in a folder with the same name ending (over 1000 files)
joe.jpy.jpeg
joe1.jpy.jpeg
joe2.jpy.jpeg
jon3.jpy.jpeg
jor5.jpy.jpeg
.....jpy.jpeg
etc.
I want to change jpy to hhk
So the output will be:
joe.hhk.jpeg
joe1.hhk.jpeg
joe2.hhk.jpeg
jon3.hhk.jpeg... (3 Replies)
Discussion started by: kylle345
3 Replies
9. Shell Programming and Scripting
Hello,
I am looking for a command line that will rename name files :
f700_abc_o_t_MASTERID_AS_AE_20130323.csv
like this
f700_abc_o_t_MASTERID_AS_AE_20130324.csv
The great idea could be to get the date stamp 20130323
and change any part of it, instead of just change the... (4 Replies)
Discussion started by: Aswex
4 Replies
10. Shell Programming and Scripting
Hi,
In sftp script to get files, I have to rename all the files which I am picking. Rename command does not work here. Is there any way to do this?
I am using #!/bin/ksh
For eg: sftp user@host <<EOF
cd /path
get *.txt
rename *.txt *.txt.done
... (7 Replies)
Discussion started by: jhilmil
7 Replies
RANGE(3) 1 RANGE(3)
range - Create an array containing a range of elements
SYNOPSIS
array range (mixed $start, mixed $end, [number $step = 1])
DESCRIPTION
Create an array containing a range of elements.
PARAMETERS
o $start
- First value of the sequence.
o $end
- The sequence is ended upon reaching the $end value.
o $step
- If a $step value is given, it will be used as the increment between elements in the sequence. $step should be given as a posi-
tive number. If not specified, $step will default to 1.
RETURN VALUES
Returns an array of elements from $start to $end, inclusive.
EXAMPLES
Example #1
range(3) examples
<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
// The step parameter
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
echo $number;
}
// Usage of character sequences
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
echo $letter;
}
?>
NOTES
Note
Character sequence values are limited to a length of one. If a length greater than one is entered, only the first character is
used.
SEE ALSO
shuffle(3), array_fill(3), foreach.
PHP Documentation Group RANGE(3)