shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting shell
# 1  
Old 02-13-2012
shell

Hello,
I have the files(#600) like as..

Code:
0001.dcm
0002.dcm
0003.dcm
............
..........
0600.dcm

I would like to move these files to two different folder, say "a" and "b" folders. I want to make that the first five dcm files(0001.dcm, 0002.dcm, .... 0005.dcm) is moved to "a" folder, the second five dcm files(0006.dcm, 0007.dcm....0010.dcm) is move to "b" folder. I want to move the third five dcm file to the "a" folder again.

"a" folder has 0001.dcm, 0002.dcm, 0003.dcm, 0004.dcm, 0005.dcm, 0011.dcm, 0012.dcm, ...... 0595.dcm

"b" folder has 0006.dcm, 0007.dcm, 0008.dcm, 0009.dcm, 0010.dcm, 0016.dcm, 0017.dcm, ...... 0600.dcm


How can I do this? any suggestion?
Thanks in advance.
____________________________________________________________

Here is my code so far, but it does not work.....


Code:
k=5
kk=0

for f in *.dcm; do

  if ["$kk" -eq 0] && ["$(expr $(echo 0$f | tr -cd 0-9))" -le "$k" ]; then
        mv $f a
    else
      let "kk"=1
      let "k +=5"
    fi


  if ["$kk" -eq 1] && ["$(expr $(echo 0$f | tr -cd 0-9))" -le "$k" ]; then
        mv $f b
    else
      let "kk"=0
      let "k +=5"

    fi

done


Last edited by joeyg; 02-13-2012 at 04:09 PM.. Reason: please use CodeTags around data and scripts
# 2  
Old 02-13-2012
assumes directory A and b both exist. try this:
Code:
#!/bin/bash
cd /path/to/dcm_files
for i in *.dcm
do
    num=${i%%.*}
    num=$(( $num % 10 ))
    if [ $num -lt 6 ]; then
        echo "test: moving $i to /path/to/a/${i}"   # comment out this line after testing
   #    mv $i  /path/to/a/${i}   #uncomment after you TEST this
    else
         echo "test: moving $i to /path/to/b/${i}"   # comment out this line after testing
   #    mv $i /path/to/b/${i}   # uncomment after you TEST this
     fi
done

# 3  
Old 02-13-2012
Thanks, but errors

Code:
test: moving 0001.dcm to /path/to/a/0001.dcm
test: moving 0002.dcm to /path/to/a/0002.dcm
test: moving 0003.dcm to /path/to/a/0003.dcm
test: moving 0004.dcm to /path/to/a/0004.dcm
test: moving 0005.dcm to /path/to/a/0005.dcm
test: moving 0011.dcm to /path/to/b/0011.dcm
test: moving 0012.dcm to /path/to/a/0012.dcm
test: moving 0013.dcm to /path/to/a/0013.dcm
test: moving 0014.dcm to /path/to/a/0014.dcm
test: moving 0015.dcm to /path/to/a/0015.dcm
test: moving 0021.dcm to /path/to/b/0021.dcm
test: moving 0022.dcm to /path/to/b/0022.dcm
test: moving 0023.dcm to /path/to/b/0023.dcm
test: moving 0024.dcm to /path/to/a/0024.dcm
test: moving 0025.dcm to /path/to/a/0025.dcm
test: moving 0031.dcm to /path/to/a/0031.dcm
test: moving 0032.dcm to /path/to/b/0032.dcm
test: moving 0033.dcm to /path/to/b/0033.dcm
test: moving 0034.dcm to /path/to/b/0034.dcm
test: moving 0035.dcm to /path/to/b/0035.dcm
test: moving 0041.dcm to /path/to/a/0041.dcm
test: moving 0042.dcm to /path/to/a/0042.dcm
test: moving 0043.dcm to /path/to/a/0043.dcm
test: moving 0044.dcm to /path/to/b/0044.dcm
test: moving 0045.dcm to /path/to/b/0045.dcm
test: moving 0046.dcm to /path/to/b/0046.dcm
test: moving 0047.dcm to /path/to/b/0047.dcm
test.sh: line 6: 0048: value too great for base (error token is "0048")

----------------------------------------------------------------------------------------------------------------------------------------------------

Quote:
Originally Posted by jim mcnamara
assumes directory A and b both exist. try this:
Code:
#!/bin/bash
cd /path/to/dcm_files
for i in *.dcm
do
    num=${i%%.*}
    num=$(( $num % 10 ))
    if [ $num -lt 6 ]; then
        echo "test: moving $i to /path/to/a/${i}"   # comment out this line after testing
   #    mv $i  /path/to/a/${i}   #uncomment after you TEST this
    else
         echo "test: moving $i to /path/to/b/${i}"   # comment out this line after testing
   #    mv $i /path/to/b/${i}   # uncomment after you TEST this
     fi
done


Last edited by Scott; 02-14-2012 at 05:41 AM.. Reason: Please use code tags
# 4  
Old 02-14-2012
Code:
n=0
cur=a
ls | sort -t"." -n | while read file;do
if [ -f $file ];then
	n=$(($n+1))
	t=`echo $n % 5 | bc`
	mv $file $cur
	if [ $t -eq 0 ];then
		if [ $cur == 'a' ];then
			cur=b
		else
			cur=a
		fi
	fi
fi
done


Last edited by Franklin52; 02-14-2012 at 05:54 AM.. Reason: code tags
# 5  
Old 02-14-2012
thanks

Thanks so much, it works very well.


Quote:
Originally Posted by summer_cherry
Code:
n=0
cur=a
ls | sort -t"." -n | while read file;do
if [ -f $file ];then
	n=$(($n+1))
	t=`echo $n % 5 | bc`
	mv $file $cur
	if [ $t -eq 0 ];then
		if [ $cur == 'a' ];then
			cur=b
		else
			cur=a
		fi
	fi
fi
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

2. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

3. Shell Programming and Scripting

Any shell or hack that makes the shell command line take vi commands?

basically i'm tired of hitting the left arrow a few dozen times when correcting a mistake or modifying a history command i'd like to use vim style key shortcuts while on the command line so that a 55 moves the cursor 55 places to the left... and i want all the other vi goodies, search of... (3 Replies)
Discussion started by: marqul
3 Replies

4. Shell Programming and Scripting

calling 'n' number of shell scripts based on dependency in one shell script.

Hello gurus, I have three korn shell script 3.1, 3.2, 3.3. I would like to call three shell script in one shell script. i m looking for something like this call 3.1; If 3.1 = "complete" then call 3.2; if 3.2 = ''COMPlete" then call 3.3; else exit The... (1 Reply)
Discussion started by: shashi369
1 Replies

5. Shell Programming and Scripting

simple shell - how to get a parameter typed in a shell script

Hi, I am new to unix and using linux 7.2. I would like to create a script that would make it easyer for me to run my java programms. At the moment I have to type java myJavaprogram I am trying to write a script that will allow me to type something like this "myscript myJavaprogram" or maybe... (4 Replies)
Discussion started by: cmitulescu
4 Replies

6. Shell Programming and Scripting

How to run cmds after changing to a new env (shell) in a shell script

Hi, I am using HP-UNIX. I have a requirement as below I have to change env twice like: cadenv <env> cadenv <env> ccm start -d /dbpath ccm tar -xvf *.tar ccm rcv .... mv *.tar BACKUP but after I do the first cadenv <env> , I am unable to execute any of the later commands . ... (6 Replies)
Discussion started by: charlei
6 Replies

7. Shell Programming and Scripting

Help need to make a shell script run for ffmpeg vhook watermaking in shell

i have a small problem getting a batxh shell script to run in shell this is the code the problem seems to be centered around the ffmpeg command, something maybe to do with the ' ' wrapping around the vhook part command this is a strange problem , if i take the ffmpeg command and... (1 Reply)
Discussion started by: wingchun22
1 Replies

8. Linux

How to Start a Shell as Login shell instead of ordinary shell

Hi I tried with bash --login option. but the output is siva:~$ bash --login siva:~$ is there any way to make the shell ask for user id and password ( and login as different user instead of using sudo / su ) Thx in advance Siva (3 Replies)
Discussion started by: Sivaswami
3 Replies

9. AIX

Difference between writing Unix Shell script and AIX Shell Scripts

Hi, Please give me the detailed Differences between writing Unix Shell script and AIX Shell Scripts. Thanks in advance..... (0 Replies)
Discussion started by: haroonec
0 Replies

10. Shell Programming and Scripting

How to run unix commands in a new shell inside a shell script?

Hi , I am having one situation in which I need to run some simple unix commands after doing "chroot" command in a shell script. Which in turn creates a new shell. So scenario is that - I need to have one shell script which is ran as a part of crontab - in this shell script I need to do a... (2 Replies)
Discussion started by: hkapil
2 Replies
Login or Register to Ask a Question