Visit Our UNIX and Linux User Community


Converting file names to upper case


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting file names to upper case
# 1  
Old 01-10-2006
Converting file names to upper case

Hi all,

I am trying to rename all my files in a directory to their upper case counterparts .... I want to do this in a single command and not through shell script ... I started off thinking it wud be simple but got stuck up in middle since tr does not work the way i thought ...

This is what i tried ...

ls | xargs -l1 -t -i mv {} `echo {} | tr '[a-z]' '[A-Z]'`

Here tr does not seem to do any work and just returns the file name as such .. So in effect i am renaming a file to that name itself ...

mv try.cc try.cc
mv: try.cc and try.cc are identical
mv typescript typescript
mv: typescript and typescript are identical

Why is this happening ?? And can anyone suggest me a solution
# 2  
Old 01-10-2006
for i in *
do
mv $i `echo $i|awk '{print toupper($0)}'`
done

now i dunno if you can consider this as a one line command, but i think it has to be, coz you cant execute each of the above line separately by itself to get your result
# 3  
Old 01-10-2006
Not one line, but efficient with ksh builtins...
Code:
# ls
file_1  file_2  file_3
# ls | while read filename; do
>    typeset -u uppercase
>    uppercase=${filename}
>    mv ${filename} ${uppercase}
> done
# ls
FILE_1  FILE_2  FILE_3

Cheers
ZB
# 4  
Old 01-12-2006
Here my list of files to be renamed comes from some other command like find or something ... so i wud need to use xargs for doing this Also i want to do rename interactively ....

even when i put this awk part in xargs as below :

ls | xargs -l1 -t -i echo {} `echo {}|awk '{print toupper($0)}'`

awk doesnt work as tr in my first post...

where as here wc works

ls | xargs -l1 -t -i echo {} `echo {}|wc`

Can anyone tell me the reason why this happens ???
# 5  
Old 01-12-2006
Quote:
Originally Posted by Sabari Nath S
ls | xargs -l1 -t -i echo {} `echo {}|awk '{print toupper($0)}'`
`echo {}|wc`

Can anyone tell me the reason why this happens ???
Neither command works for me. You must be testing in a directory with only a few two character filenames if you think the second one works. Create a few longer filenames. The shell sees `echo {} | wc`; so it runs that pipeline and it gets "{} 1 1 3" which it replaces in your command. So then you run:
ls | xargs -l1 -t -i echo {} {} 1 1 3
# 6  
Old 01-12-2006
hmm, well if it is output of command find, you can pipe it to a for or while loop as follows, instead of using the xargs.

=>find . | while read a
do
mv "$a" `echo "$a"|awk '{print toupper($a)}'`
done
mv: `.' and `./.' are the same file

if this still doesnt fit in your scenario, tell us what is that makes you so mandatory that you just cant do without using xargs?

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Upper to lower case in encoded file

Hi All, I want to change the out put of a decode file from lower to upper. i used tr command but facing issue. set -vx id=$(id) dt=$(date) store=$1 if ]; then cd $APPL_TOP/local/bin cp .sqlpass.Z $$.temp.Z uncompress $$.temp.Z sed -e s/sqlpass/$$.sqlpass/ $$.temp >... (5 Replies)
Discussion started by: nag_sathi
5 Replies

2. Shell Programming and Scripting

convert specific field to upper case in file

Hi Friends, I have a file1.txt as below I want to convert the date fields in to upper case field3 and field 6 output.txt Plz help. (2 Replies)
Discussion started by: i150371485
2 Replies

3. Shell Programming and Scripting

converting to lower case or upper case

here is a code column_name="vivek" column_name2="ViVeK" column_name=$(echo $column_name | awk '{print tolower($0)}') column_name2=$(echo $column_name2 | awk '{print tolower($0)}') echo "column name 1 lower: $column_name" echo "column name... (6 Replies)
Discussion started by: vivek d r
6 Replies

4. Shell Programming and Scripting

Conversion from Upper Case to Lower Case Condition based

Hello Unix Gurus : It would be really appreciative if can find a solution for this . I have records in a file . I need to Capitalize the records based on condition . For Example i tried the following Command COMMAND --> fgrep "2000YUYU" /export/home/oracle/TST/data.dat | tr '' ''... (12 Replies)
Discussion started by: tsbiju
12 Replies

5. Shell Programming and Scripting

[Solved] Change Upper case to Lower case in C shell

Is there a command that can switch a character variable from UPPER case to lower case? like foreach AC ( ABC BCD PLL QIO) set ac `COMMAND($AC)` ... end Thanks a lot! (3 Replies)
Discussion started by: rockytodd
3 Replies

6. Shell Programming and Scripting

data array needs to change upper case to lower case

Hi all, i have a data array as followes. ARRAY=DFSG345GGG ARRAY=234FDFG090 ARRAY=VDFVGBGHH so on.......... i need all english letters to be change to lower case. So i am expecting to see ARRAY=dfsg345ggg ARRAY=234fdfg090 ARRAY=vdfvgbghh so on........ If i have to copy this data in... (8 Replies)
Discussion started by: usustarr
8 Replies

7. Shell Programming and Scripting

convert file names to upper case using tr command in Unix

Hi All, Need to convert file names to upper case using tr command in Unix. In a folder -> /apps/dd01/misc there are two files like: pi-abcd.pdf pi-efgh.pdf The output of should be like: pi-ABCD.pdf pi-EFGH.pdf I have used the command to work for a single file at a time... (3 Replies)
Discussion started by: a1_win
3 Replies

8. UNIX for Dummies Questions & Answers

Perl - converting selected characters to upper/lower case

Using STDIN, how can I use perl to take an input string, with all lower case letters in the first five characters, and convert them to uppercase... then take all uppercase letters in the second five characters and convert them to lowercase. Example: MichaelSmith to michaELSMIth Thank you! (2 Replies)
Discussion started by: doubleminus
2 Replies

9. UNIX for Dummies Questions & Answers

lower case to upper case string conversion in shell script

How can convert a Lower case variable value to an upper case in the kron shell script. (3 Replies)
Discussion started by: dchalavadi
3 Replies

10. UNIX for Dummies Questions & Answers

variables use upper case? sed : output to the same file?

Hi, Q1: are the variables in shell script usually UPPER CASE? Q2: can sed output to the same file that it's using it? eg. cat sameFile | sed 's/here/there/g' > sameFile ? I expect the sed replace all "here" to "there" and change it in sameFile. i tried that one, the sameFile... (1 Reply)
Discussion started by: gusla
1 Replies

Featured Tech Videos