Problem scripting a copy and renaming shell executable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem scripting a copy and renaming shell executable
# 15  
Old 01-19-2015
Code:
index="0000000" # set a starting index of 0 but with 7 digits to allow for up to 10M characters.
for image in $(cat list.txt) ; do # setp through list.txt one line at a time
 cp ${SRC_DIR}/$image new_folder/${index}.jpg # copy the apropriate image from the images source directory to a file named "the value of the index".jpg
 index = $(printf %06d $(( $index + 1 )) ) # increment the value of the index
done

So you would (in the example above) be copying
b.jpeg => 0000000.jpg
e.jpeg => 0000001.jpg
g.jpeg => 0000002.jpg
i.jpeg => 0000003.jpg
...

This would ensure that the sort order was the same as the book order if you were to generate a slideshow of the directory.
This User Gave Thanks to Skrynesaver For This Post:
# 16  
Old 01-19-2015
Quote:
Originally Posted by Skrynesaver
Code:
index="0000000" # set a starting index of 0 but with 7 digits to allow for up to 10M characters.
for image in $(cat list.txt) ; do # setp through list.txt one line at a time
 cp ${SRC_DIR}/$image new_folder/${index}.jpg # copy the apropriate image from the images source directory to a file named "the value of the index".jpg
 index = $(printf %06d $(( $index + 1 )) ) # increment the value of the index
done

So you would (in the example above) be copying
b.jpeg => 0000000.jpg
e.jpeg => 0000001.jpg
g.jpeg => 0000002.jpg
i.jpeg => 0000003.jpg
...

This would ensure that the sort order was the same as the book order if you were to generate a slideshow of the directory.
I'll have to wait till later to test it. Another thing I thought about. The copy time for each jpeg, each jpeg is between 100KB to 250KB, so I would run into a copy time delay for each depending on the file size. However small. I don't expect it to copy the sequence of images in list.txt all at once, a delay for each copy might be needed? So as to not overload the computer with a sudden long list of copying to do
# 17  
Old 01-19-2015
How about a softlink?
This would not only save quite a bit of diskspace, but also be alot faster upon creation (i think).

As in, instead of:
Code:
cp a.jpg 000000.jpg

You do:
Code:
ln -s a.jpg 000000.jpg

hth
# 18  
Old 01-19-2015
Code

I'm not familiar with softlink. I'm guessing it is a a shortcut. I did see the option when I was reading the man for the commands for a symbolic link. I would have to wait till I get home to see if the time lapse program will accept it.

---------- Post updated at 11:52 AM ---------- Previous update was at 11:46 AM ----------

Whenever it is going to copy the first jpeg of the list.txt " let's say it is a.jpeg , it copies and renames that one 0000001.jpeg, then 4 lines later it has to copy another a.jpeg but rename this one 000005.jpeg", because I can't have the same name files in the same folder.

---------- Post updated at 01:38 PM ---------- Previous update was at 11:52 AM ----------

i ran this

Code:
cd Desktop/sourcepictures
index="0000000" 
for image in $(cat list.txt) ; do 
cp ${sourcepictures}/$image orderedpictures/${index}.jpeg
index = $(printf %06d $(( $index + 1 )) )
done

and it says this

Code:
Last login: Mon Jan 19 13:28:21 on ttys000
timothys-mbp:~ timothynorris$ /Users/timothynorris/Desktop/new\ test.command ; exit;
cp: /i.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /n.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /spacebar.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /t.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /h.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /e.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /spacebar.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /b.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /e.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /g.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /i.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /n.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /n.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /i.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /n.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /g.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /spacebar.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /G.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /o.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /d.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /spacebar.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /c.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /r.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /e.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /a.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /t.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /e.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /d.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /spacebar.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /t.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /h.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
cp: /e.jpeg: No such file or directory
/Users/timothynorris/Desktop/new test.command: line 5: index: command not found
logout

[Process completed]

i have the code in a file named "test.command" on the desktop

i have the folder named "sourcepictures" on the desktop and the jpeg files are in that folder and inside the "sourcepictures" folder i have the folder named "orderedpictures". also, list.txt is in "sourcepictures" folder. it found the list.txt

what do i have to put in the script to get it to find the files and directories
# 19  
Old 01-19-2015
Quote:
Originally Posted by ilovedoritos
i ran this
Code:
cd Desktop/sourcepictures
index="0000000" 
for image in $(cat list.txt) ; do 
cp ${sourcepictures}/$image orderedpictures/${index}.jpeg
index = $(printf %06d $(( $index + 1 )) )
done

i have the code in a file named "test.command" on the desktop

i have the folder named "sourcepictures" on the desktop and the jpeg files are in that folder and inside the "sourcepictures" folder i have the folder named "orderedpictures". also, list.txt is in "sourcepictures" folder. it found the list.txt

what do i have to put in the script to get it to find the files and directories
You've used php/lua/java settings to assign a value, but its bash.
index = $(printf %06d $(( $index + 1 )) ) --> index=$(printf %06d $(( $index + 1 )) )

And regarding the folders, i now assume it lookes like (yes the renaming of the folders is on purpose, just for the example):
  • $HOME/Desktop/test.sh
  • $HOME/Desktop/pictures-source
  • $HOME/Desktop/pictures-ordered


Now according to your posted code snippet, i would change that to:
test.sh
Code:
#!/bin/bash
SOURCES="$HOME/Desktop/sourcepictures"
TARGET="$HOME/Desktop/orderedpictures"
LIST="$HOME/Desktop/list.txt"
index="0000000" 

for image in $(cat $LIST) ; do 
    ln -s $SOURCES/$image  $TARGET/$index.jpg
    index=$(printf %06d $(( $index + 1 )) )
done

If list.txt contains only the chars (a,b,c,d...) you need to add ".jpg" after "$image".
If list.txt contains the proper image name, you wont need to change anything.

hth & gn8
# 20  
Old 01-19-2015
i ran this exactly

Code:
#!/bin/bash
SOURCES="$HOME/Desktop/sourcepictures"
TARGET="$HOME/Desktop/orderedpictures"
LIST="$HOME/Desktop/sourcepictures/list.txt"
index="0000000” 

for image in $(cat $LIST) ; do 
    ln -s $SOURCES/$image  $TARGET/$index.jpeg
    index=$(printf %06d $(( $index + 1 )) )
done

that worked for 8 pictures , it didnt copy the actual pictures and rename them instead it made a softlink/shortcut and renamed them in order, and the timelapse program i ran the shortcuts through made a video from it.

it does what i want it to but it stops at 8 pictures, does the index "0000000" have to be really long, i need this done for lots of pictures

it says this after i run it
how do i get it to run until the end of list.txt?

Code:
Last login: Mon Jan 19 15:31:50 on ttys000
timothys-mbp:~ timothynorris$ /Users/timothynorris/Desktop/test.command ; exit;
/Users/timothynorris/Desktop/test.command: line 9: 000008: value too great for base (error token is "000008")
ln: /Users/timothynorris/Desktop/orderedpictures/.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000001.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000002.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000003.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000004.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000005.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000006.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000007.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000008.jpeg: File exists
/Users/timothynorris/Desktop/test.command: line 9: 000008: value too great for base (error token is "000008")
ln: /Users/timothynorris/Desktop/orderedpictures/.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000001.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000002.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000003.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000004.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000005.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000006.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000007.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000008.jpeg: File exists
/Users/timothynorris/Desktop/test.command: line 9: 000008: value too great for base (error token is "000008")
ln: /Users/timothynorris/Desktop/orderedpictures/.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000001.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000002.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000003.jpeg: File exists
ln: /Users/timothynorris/Desktop/orderedpictures/000004.jpeg: File exists
logout

[Process completed]

# 21  
Old 01-19-2015
My bad, use -sf instead of just -s.

And if you want index to have 7 digits, change %06d to %07d

And a question, what does the complete script look like?
Because what skrynesaver and i posted didnt have 9 lines of code, but your output fails on line 9 of the script.

hth
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell scripting problem

Hello. I hava homework for university but i cant do it and i need a little help if someone can help me :) I have to do a linux shell script. Write a script that does the following: 1. Check if there is a directory in / home with myDir name. If not, it creates it. 2. In the directory it... (1 Reply)
Discussion started by: alex4o0o
1 Replies

2. Emergency UNIX and Linux Support

Need support for a shell scripting problem

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. Shell Programming and Scripting

ksh shell scripting to copy a file

Hi. I am a new Unix admin and I've been tasked to write a ksh script that copies my .profile into my /home directory on all servers. I'm new to this and having a difficult time scripting it. Any ideas? (6 Replies)
Discussion started by: david_tech
6 Replies

4. Shell Programming and Scripting

Shell Scripting: Copy Files with Today's date

I was wondering the best way about finding files that were created today and copy them to a directory (grep ?). There can be multiple files for todays date or none. I am looking to copy all of the .lis files for todays date. I may need to modify the filename to include todays date but for the... (4 Replies)
Discussion started by: smkremer
4 Replies

5. Homework & Coursework Questions

Shell Scripting Problem...

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! Hello all,,, I am trying to finish my assignment for my CNET class. I am running into 2 problems... First the "Delete a file" (Option 1) When I run this option everything... (5 Replies)
Discussion started by: ozman911
5 Replies

6. Shell Programming and Scripting

Problem in loops in shell scripting

Hi, #!/bin/ksh $v="" for ((i = 1 ; i <= 5 ; i++ )) do v="THerrFile_$i.err"; grep -i "$i:Error" $v >>oraerror_output.txt done My requirement is to dynamically create variable like THerrFile_1.err,THerrFile_2.err etc. where my grep needs... (5 Replies)
Discussion started by: sudhir_83k
5 Replies

7. Shell Programming and Scripting

Shell Scripting problem

Hi guys, I am a newbie to shell scripting.Please help me to accomplish this task. Its very urgent,I should create a script which will do the following: i) "cd ~joseph/ ; mkdir -p Bing/Bong ;mkdir -p Bing/Bang" and then create 15 ".txt" files with content "Bing Bang Bong" in "Bong"... (1 Reply)
Discussion started by: mahesh_raghu
1 Replies

8. Shell Programming and Scripting

Shell scripting and ls -1 problem

Hey, I'm running knoppix and I'm trying to run a shell script to change multiple lines of text in multiple files #!/bin/sh for i in 'ls-1 test' do sed 's/bob/manny/'g $i > $i.0 mv $i.0 $i done Obviously this isn't the original file, but it's on another non-networked machine. What... (7 Replies)
Discussion started by: afroCluster
7 Replies

9. Shell Programming and Scripting

shell scripting problem

her i am trying to edit a database file which is actually a small file holding my friend's name and birthdays My Database DEEPAK 27/08 DEEPIKA 18/02 DHYAN 23/03 DIPANKAR 24/10 SNIGDHO 19/05 AYANNAR 17/12 BHAI 22/09 DEBAN 16/08 JAGADISH 02/06 SUBHOJIT 23/02 TOJO 17/09 SUDHIR 12/09... (1 Reply)
Discussion started by: mobydick
1 Replies

10. Programming

Renaming an executable file

HI How to rename an executable file in unix (3 Replies)
Discussion started by: bankpro
3 Replies
Login or Register to Ask a Question