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
# 1  
Old 01-19-2015
Code Problem scripting a copy and renaming shell executable

I also posted this on macrumors forum, then i realized that this is a more suitable forum for matters like this. I apologize for the username, I was looking at a bag of doritos when it asked me for a username. lol

I need a program (see below for what I've tried) and I think a shell program will work.

I need a program that will read each line and copy a specific JPEG to a folder and rename it sequentially as it copies them. It has to be in the order that the list.txt is in.

I have had some luck with writing a shell script for it.

I have a text file named list.txt
it looks exactly like this when you open it
and the picture that each of these contains is a picture of the letter or number or punctuation.

Code:
b.jpeg
e.jpeg
g.jpeg
i.jpeg
n.jpeg
n.jpeg
i.jpeg
n.jpeg
g.jpeg
spacebar.jpeg
g.jpeg
o.jpeg
d.jpeg
spacebar.jpeg
c.jpeg
r.jpeg
e.jpeg
a.jpeg
t.jpeg
e.jpeg
d.jpeg

the files above write "beginning god created", but I want to do this to a book. or anything else I want.

I have been using these commands
Code:
cp `cat list.txt` new-folder/

This sorta successfully copies the files listed in list.txt but won't copy a file with the same name in the same folder.
The date/time when it was copied to the folder on each file isn't accurate because of the duplicate file name issue.
Since I am only using pictures of the 26 letters and 10 numbers and punctuation of the alphabet, I will obviously be running into the duplicate file name issue, I will be copying the same files many times over depending on the text in list.txt
So I figure that I need to rename them as they are pasted in the new folder.

So I use this to rename them.

Code:
find . -name '*.jpeg' \
| awk 'BEGIN{ a=0 }{ printf "mv %s %04d.jpeg\n", $0, a++ }' \
| bash

This successfully renames the original JPEG's, but in the wrong folder and I need the ones copied to be renamed, not the source JPEG's

and finally this piece to somehow combine them
Code:
cat [filename] | while read line; do [command] "$line"; done

Ive tried all kinds of mutations to get it to work and it looks something like this

Code:
cd Desktop/test
cp `cat list.txt` new-folder/ | while read line; do find . -name '*.jpeg' | awk 'BEGIN{ a=0 }{ printf "mv %s %04d.jpeg\n", $0, a++ }' | bash "$line"; done


what am i missing? and doing wrong? I also need to to wait for each JPEG to be copied and renamed before going to the next line in list.txt
I need the files copied and renamed in order. If you help me, treat me stupid when it comes to programming, because I am pretty much clueless.
# 2  
Old 01-19-2015
Heya Dorito, my love Smilie

Quote:
Originally Posted by ilovedoritos
the files above write "beginning god created", but I want to do this to a book. or anything else I want.
Whut?

You want to create a book using images as letters?
First and foremost, you dont want to have a complete book with each letter as a picutre.
By that i mean, there will be thousends of a.jpg, s.jpg and probably ten-thousens of spacechar.jpg....

You want to reuse each image representing a char.

So my question is, how to you plan to make them a book?
Actualy, another more important question rises, is this some homework?
If so, please see: Rules for Homework & Coursework Questions Forum


Thank you & Have a good day

Last edited by sea; 01-19-2015 at 03:02 AM..
# 3  
Old 01-19-2015
not what you think it's for.

It's not going to be just pictures of letters of text in books but things that bring emotion when you see the picture. No I'm not in school, no homework nothing like that. I'm retired navy. Honorable medical discharge. Anyway I'm going to put the pictures in a time lapse and then I'm going to speed it up till each picture only flashes for about 16 milliseconds. I do tree removal time lapses for my dad's business. I set up my camera to take a picture every 5 seconds for 5 or so hours then we take the tree down and then I turn the pictures into a 1 minute timelapse.
When I do a tree timelapse I put the pictures into the timelapse program and it is a big video 3000 pictures about 20 GB but then I put it through iMovie and speed it up and it's a very small file size. Like 45MB
its an idea/experiment i had 3 days ago, and I'm try to put it together. I just need the script to do the copying and sequentially renaming.

Last edited by ilovedoritos; 01-19-2015 at 04:07 AM.. Reason: I keep thinking of things to add and I found a few typos, don't want to look like an idiot now do we hmm
# 4  
Old 01-19-2015
You could try something like:

Folder content:
Code:
letters.sh
letters/{a-zA-Z0-1}.jpg
example-text.txt

example-text.txt
Code:
God gave us a free will.
And he loves us.

letters.sh
Code:
#!/bin/bash
# Prepare - dummy files
#for char in {a..z} {A..Z} {0..9} 
#do
#	touch $char.jpg
#done

[[ -z "$1" ]] && \
	echo "$0: Requires a file to parse!" && \
	exit 1

[[ ! -f "$1" ]] && \
	echo "$0: Requires a file to parse!" && \
	exit 1

TEXT_FILE="$1"
CHAR_DIR="$(dirname $0)/letters/"

while read line;do
	len=${#line}
	c=0
	while [[ $c -lt $len ]]
	do 	char=${line:$c:1}
		img="$CHAR_DIR/$char.jpg"
		
		# WHAT TO DO WITH CHAR (-image) ?
		echo "Current char: $char -> $img"
		
		c=$(( $c + 1))
	done
	echo "------------"
done<"$TEXT_FILE"

Outputs as:
Code:
./letters.sh example-text.txt

Current char: G -> ./letters//G.jpg
Current char: o -> ./letters//o.jpg
Current char: d -> ./letters//d.jpg
Current char:   -> ./letters// .jpg
Current char: g -> ./letters//g.jpg
Current char: a -> ./letters//a.jpg
Current char: v -> ./letters//v.jpg
Current char: e -> ./letters//e.jpg
Current char:   -> ./letters// .jpg
Current char: u -> ./letters//u.jpg
Current char: s -> ./letters//s.jpg
Current char:   -> ./letters// .jpg
Current char: a -> ./letters//a.jpg
Current char:   -> ./letters// .jpg
Current char: f -> ./letters//f.jpg
Current char: r -> ./letters//r.jpg
Current char: e -> ./letters//e.jpg
Current char: e -> ./letters//e.jpg
Current char:   -> ./letters// .jpg
Current char: w -> ./letters//w.jpg
Current char: i -> ./letters//i.jpg
Current char: l -> ./letters//l.jpg
Current char: l -> ./letters//l.jpg
Current char: . -> ./letters//..jpg
------------
Current char: A -> ./letters//A.jpg
Current char: n -> ./letters//n.jpg
Current char: d -> ./letters//d.jpg
Current char:   -> ./letters// .jpg
Current char: h -> ./letters//h.jpg
Current char: e -> ./letters//e.jpg
Current char:   -> ./letters// .jpg
Current char: l -> ./letters//l.jpg
Current char: o -> ./letters//o.jpg
Current char: v -> ./letters//v.jpg
Current char: e -> ./letters//e.jpg
Current char: s -> ./letters//s.jpg
Current char:   -> ./letters// .jpg
Current char: u -> ./letters//u.jpg
Current char: s -> ./letters//s.jpg
Current char: . -> ./letters//..jpg
------------

Hope this helps to get you started.
If not, i'm not getting/understanding what you try to achieve.

---------- Post updated at 09:22 ---------- Previous update was at 09:18 ----------

Ahh yes... main cause is.... AFAIK there is no way to 'flash' an image in the shell. (to display anyway - with the exception of framebuffer - above my knowhow.)
# 5  
Old 01-19-2015
I'm not going to do the time lapse with shell. I just need the shell to copy specific files and rename them

---------- Post updated at 02:28 AM ---------- Previous update was at 02:26 AM ----------

I don't see any cp command or sequential renaming in that script
# 6  
Old 01-19-2015
Again, (just as far i understand you, which seems its not 'that' far), it makes now sense to copy the char-images, just make a one folder containing these, and call the specific image upon need.

Reuse what is already existing, there is no sense in having 300 letter a.jpg in several folders.

If that is not what you want to achieve, please elaborate more about that copy issue you mention, because from your first post, its quite (very) unclear to me what you actualy want to do OR what the precice issue is.
Specialy since you use a mv command rather that cp...

---------- Post updated at 09:32 ---------- Previous update was at 09:32 ----------

Neither do i in yours.
In mine its not required.
# 7  
Old 01-19-2015
My code I tried worked partly, I got it to copy the specific Jpegs but it wouldn't copy ones again that existed in the folder, and I got it to sequentially rename the files but it renamed the source files and not the copied ones. I just don't know how to combine the functions
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