Q: How to write this script?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Q: How to write this script?
# 1  
Old 11-30-2009
Q: How to write this script?

Hi there Smilie

I have a folder called backup
it is path is: ~/backup

Inside this folder, there are four files:
~/backup/test1.cpp
~/backup/test2.cpp
~/backup/test3.cpp
~/backup/PATHS.TXT


The fourth file PATHS.TXT contains the original paths for the three files. This is the content of it:

[1]/home/user/Desktop/test1.cpp
[2]/home/user/Desktop/folder3/test2.cpp
[3]/home/user/Desktop/test3.cpp


I want to write a script that:
1) take a number from user ( 1, 2 or 3 )
2) store the original path of the selected file into a variable p
3) copy the selected file to path p ( its original location )

This is what I have done so far:
Code:
#check if there is a parameter or not
if [ $# = 0 ]
then
echo List of all files in backup system:
cat ~/backup/PATHS.TXT
else

# Take the line that contains the file's original path:
l=`grep \[$1\] ~/backup/PATHS.TXT`
echo $l

# Store the file's original path into variable p
#p=
#echo $p

# Copy the file to its original location:
#f=
#cp $f $p
#echo File $f restored sccussfully to its original location $p
fi

The problem is:
I don't know how to store the original path only without the '[#]' ?
# 2  
Old 11-30-2009
Something like:

Code:
cat ~/backup/PATHS.TXT
read NUMBER

p=$(sed -n "/^\[$NUMBER\]/s/.*]//p" ~/backup/PATHS.TXT)
cp ~/backup/$(basename $p) $p


Last edited by Scott; 11-30-2009 at 05:54 AM.. Reason: missed the second part (copy the file)
# 3  
Old 11-30-2009
Try:

Code:
read var
awk -F"]" '/\['"$var"'\]/ { split($NF,A,"/"); print "cp -p ~/backup/"A[length(A)]" "$NF }' PATHS.TXT | sh

# 4  
Old 11-30-2009
How about:
Code:
bpath=~/backup
while IFS="[]" read x nr p; do 
  if [ $nr -eq $1 ]; then
    cp -p $bpath/${p##*/} ${p%/*}
  fi
done<$bpath/PATHS.TXT

# 5  
Old 11-30-2009
Thanks scottn, YOU ARE A LIFE SAVER Smilie
This what I have done, and it runs without errors:

Code:
#check if there is parameters or not
if [ $# = 0 ]
then
echo List of all files in backup system:
cat ~/backup/EXT.DAT
else

# Store the file's original path into variable p
p=$( sed -n "/^\[$1\]/s/.*]//p" ~/backup/EXT.DAT)

# Take the name of the file and store it into variable f:
f=$( echo $p | awk 'BEGIN { FS = "\/"} ;{ print $NF }' )

# add the abso. path to ff:
ff=~/backup/$f

# copy ff to the original path p:
cp $ff $p
echo File $f restored sccussfully to its original location $p
fi



---------- Post updated at 05:03 AM ---------- Previous update was at 05:01 AM ----------

dennis.jacob & Scrutinizer
Thanks for your help, hope you all the best Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Please help me to write the script

Hi All, I have written the follwing script to take the backup of the file every day along with the date. DATE=`date +%Y%m%d` export DATE cp var/hr/hr333m.txt cp var/hr/payments/hr333m_$DATE.txt The file name as follows after taking the backup. hr333m_20110630.txt Could you... (3 Replies)
Discussion started by: ajaykumarkona
3 Replies

2. IP Networking

read/write,write/write lock with smbclient fails

Hi, We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies

3. AIX

how to write this script?

If I need delete some disk, for i in hdisk1 hdisk2 hdisk3 hdisk4 do rmdev -dl $i done if I have more than 100 hdisks, how to write a script like that to delete them? (6 Replies)
Discussion started by: rainbow_bean
6 Replies

4. Shell Programming and Scripting

Script Help - Another Way To Write This

I am adapting an Open Step ping server script to Ubuntu 8.10 and one section of my script isn't working # if there are servers that just went down or came back up, notify # with high importance if ; then echo notifying of servers that are up again or just now down notify high # if there... (2 Replies)
Discussion started by: gbxfan
2 Replies

5. Shell Programming and Scripting

Better way to write this script

Hi All, I have written the following script. I have just repeated some commands, and I am sure there is a more better way to do it. I hope I one of gurus here will help me make it in a better shape. Here is the script: #! /bin/sh sed -i -e "s/test2.xxx/test3.xxx/" -e "s/output2/output3/"... (2 Replies)
Discussion started by: faizlo
2 Replies

6. UNIX for Dummies Questions & Answers

Should I write a PERL Script or Shell Script?

Hello, I have done some BASIC shell scripting/PERL scripting before so I am familiar with the languages. I am not really sure which one would lend itself better to the application I have to write. I am required to scan the message logs for possible break in attempts. If I use shell scripting... (2 Replies)
Discussion started by: mojoman
2 Replies

7. Shell Programming and Scripting

Please write this script for me

UNIX shell script (Bourne shell syntax) called admin_script. This script is described below as a usage summary: admin_script Note: if no options are specified, a menu is displayed which allows users to perform one of the following tasks and then exit. If incorrect options are provided,... (1 Reply)
Discussion started by: nadman123
1 Replies

8. Shell Programming and Scripting

Help me to write the script

Actually i am working with two diffrent files having same structure each file contain Ten diffrent column and i want to write a script which will compare the colummns of first file with the column of second file and diiference will be send to the first column of third file . similarly for... (5 Replies)
Discussion started by: gyana_cboy
5 Replies

9. AIX

How to write script for this ?

Hi All, I want to read username and lastupdate only from /etc/security/passwd and write the same data to another file: The data in /etc/security/passwd will be in this form for example: For more details : http://www.unet.univie.ac.at/aix/files/aixfiles/passwd_security.htm#A1219924 smith:... (0 Replies)
Discussion started by: me_haroon
0 Replies

10. Shell Programming and Scripting

Help! Need to write my first script

Hi Folks! I am a MacUser and am trying to learn Unix for the last few months. I will explain in detail what I am trying to do, and apreciate you help if you can teach me even if it is a single comand line inside the script. I own a small company, where I manufacture special gypsums and... (5 Replies)
Discussion started by: fundidor
5 Replies
Login or Register to Ask a Question