file naming question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting file naming question
# 1  
Old 03-31-2010
file naming question

Hi,
I need some help!

I have a file in which i im splitting into 20 different files each called

model_001.in
model_002.in
etc...

i would like to make directory for each file using only the name and not the extension so that the directory names are

model_001
model_002
etc.

then put the *.in files inside of the corresponding directories. Sorry if this is a naive question but it will really help alot. Thanks
# 2  
Old 03-31-2010
Code:
file=model_001.in
file_without_extn=${file%.*}

you can mkdir it and process accordingly.
# 3  
Old 03-31-2010
Code:
#!/bin/ksh or bash or ...
for f in *.in
do
     d=${f%.*}
     [ ! -d "$d" ] && mkdir "$d" 2>/dev/null
     [ ! -d "$d" ] && echo error $d && continue
     mv -f "$f" "$d" 2>/dev/null
done

# 4  
Old 03-31-2010
Quote:
Originally Posted by kshji
Code:
#!/bin/ksh or bash or ...
for f in *.in
do
     d=${f%.*}
     [ ! -d "$d" ] && mkdir "$d" 2>/dev/null
     [ ! -d "$d" ] && echo error $d && continue
     mv -f "$f" "$d" 2>/dev/null
done

If you are going to echo "error", it would be better to simply not redirect mkdir or mv standard error , so that a meaningful error message is returned. Also, it's probably not a bad idea to abort if any mkdir or mv command fails.

I suggest:
Code:
#!/bin/sh

set -e
for f in *.in
do
     d=${f%.*}
     if [ ! -d "$d" ]; then
        mkdir "$d" 
     fi
     mv -f "$f" "$d"
done

Regards,
Alister
# 5  
Old 04-01-2010
So im trying to understand the script....
so in the line:

d=${f%.*}


the "f%.*" part of it represents the name and not the extension part of it?

Thanks
# 6  
Old 04-01-2010
MySQL

Quote:
Originally Posted by olifu02
So im trying to understand the script....
so in the line:

d=${f%.*}


the "f%.*" part of it represents the name and not the extension part of it?

Thanks
Yes you understand correctly
For example

Code:
f=model_001.in

Code:
d=${f%_*.*}

Code:
echo $d
model


So we divided that

f%
means --> all characters before _ and this is we want to part (for use it % character)
* --> other all characters from . (point)
* --> other all characters after . (point)
# 7  
Old 04-01-2010
Thanks one more thing.

What do the ! and -d mean in the line

Code:
if [ ! -d "$d" ]; then

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with naming the file

Hi, I have a folder that contains files abc.txt def.txt ....and so on Inside abc.txt, I have @<TRIPOS>MOLECULE 4|Chelerythrine|abcb11_earlyIdentification_Stronginhib_washed_ligprep|sdf|1|dock Inside def.txt, I have @<TRIPOS>MOLECULE... (6 Replies)
Discussion started by: rossi
6 Replies

2. UNIX for Dummies Questions & Answers

Naming file with special characters ?

Hi all, I have a problem with file naming in linux. I have to create a file named like 11/22.csv but shell displays error: no such file or dir. Problem is / character in the file name. I searched unix linux naming concepts and it's restricted in OS. Please tell me if there's any other chance? OS... (3 Replies)
Discussion started by: sembii
3 Replies

3. Shell Programming and Scripting

file naming in a script

#!/bin/bash while read inputline do what="$inputline" echo $what; if ; then exit fi $reextend $what $print ls -a done this is my code i am trying to change all of the file types of a certain directory to another file type but im not all the way there can someone help please (3 Replies)
Discussion started by: domdom110
3 Replies

4. Red Hat

File System Naming Convention

Hi, I am installing a new RHEL 5 application server containing JBOSS along with other specific 3rd party applications. I know that this usually gets installed in /opt but I was thinking of installing these on a new separtate lv / file system instead. i.e. /<my_new_FS_name> rather than... (6 Replies)
Discussion started by: Duffs22
6 Replies

5. Shell Programming and Scripting

File naming format

Hi, su - oracle<<EOC export PATH=${PATH}:${ORACLE_HOME}/bin exit EOC set `sqlplus -S $user_name/$password@$tns<<EOS set head off select min(time),max(time) from products; exit; EOS` var1=$1 var2=$2 su - oracle -c "exp user/pass@localdb... (7 Replies)
Discussion started by: milink
7 Replies

6. Fedora

Basic question regarding rpm naming convention.

Hi Guys, Where would i find the list of distribution codes. For example. samba-32bit-3.4.2 -1.1.3.1.x8664.rpm In above rpm file it is indicated that its release is 1.1.3.1 . The rpm is meant to be run for opensuse. Where would i get the linking of release number and distribution. ... (2 Replies)
Discussion started by: pinga123
2 Replies

7. Shell Programming and Scripting

File splitting, naming file according to internal field

Hi All, I have a rather stange set of requirements that I'm hoping someone here could help me with. We receive a file that is actually a concatenation of 4 files (don't believe this would change, but ideally the solution would handle n files). The super-file looks like:... (7 Replies)
Discussion started by: Leedor
7 Replies

8. Shell Programming and Scripting

#file naming

hi all, Please advise at what circumstance those file will become -rwxr-xr-x 1 psa psa 1969088 Aug 18 2006 #libaa.sl -rwx------ 1 psa psa 2166784 Jul 25 2006 #libcrypto.sl.0.9.7 -rwx------ 1 psa psa 904040 Jul 25 2006 #libxxx.sl -rwx------ 1 psa ... (2 Replies)
Discussion started by: rauphelhunter
2 Replies

9. Shell Programming and Scripting

issue in naming a file

Hi, I want to create a file named 'abc(+1)' and append the data of file 'abc' to it. But getting error as unexpected'(' when i tried to use the following command. cat abc > abc(+1) Is there any other way to include brackets along with +1 in the file name? TIA. (3 Replies)
Discussion started by: vimalr
3 Replies

10. Shell Programming and Scripting

naming a file to hostname

I am running a script remotely to another client. after it runs it places the file in /tmp. I need the file in /tmp to be renamed to the local hostname. but when i set the variable it names the file to my local hostname. how do i fix that (4 Replies)
Discussion started by: deaconf19
4 Replies
Login or Register to Ask a Question