Need to update the text file with next version of deployment(V1,V2,V3)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need to update the text file with next version of deployment(V1,V2,V3)
# 1  
Old 08-29-2017
Need to update the text file with next version of deployment(V1,V2,V3)

Hi.. am new to shell and trying to write the script for the below task. Intially new.txt will be empty.

Requirment is to update the version of deployment packages.First time CMD_HG-120-V1 should be updated in new.txt.
Next time when i run the script it should be CMD_HG-120-V2..Simiraly CMD_HG-120-V3...It should take latest version from new.txt file and increment the version in new.txt file.

This time it should be CMD_HG-120-V4 if the previous version is V3 in txt file.

CMD_HG-120-V1
CMD_HG-120-V2
CMD_HG-120-V3
....

Last edited by naresh2389; 08-29-2017 at 08:07 AM.. Reason: Added CODE tags.
# 2  
Old 08-29-2017
Quote:
Originally Posted by naresh2389
Hi..How to update the next deployment version. in txt file by taking previous version of file(CMD_HG-120-V3 and next deployment version should be CMD_HG-120-V4).
Also once deployment is successful need to update status CMD_HG-120-V4-DEV-SUCCESS.

Code:
CMD_HG-120-V1
CMD_HG-120-V1-DEV-SUCCESS
CMD_HG-120-V2
CMD_HG-120-V2-DEV-SUCCESS
CMD_HG-120-V3

I ma trying below script.
Code:
#!/bin/bash
myfile="/tmp/file/new.txt"
if [[ -e $myfile ]]
then echo "File Exist"
if [ -s /tmp/file/new.txt ]
then oldnum=`cut -d '-' -f3 /tmp/file/new.txt`
echo "Non Empty File"
newnum=`expr $oldnum + 1`
echo $newnum
echo"CMD_HG-120-$newnum" >> /tmp/file/new.txt/new.txt
else
echo "loop"
echo "CMD_HG-120-V1" >> /tmp/file/new.txt
fi
else
echo $myfile
fi


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!



Not clear.
What exactly is your request? Your script doesn't give the expected result? Gives error messages?
What's the contents of the txt file? Where is CMD_HG-120-V4-DEV-SUCCESS going to? Why do you define the myfile variable, but then use string constants for the target file? Why do you append to /tmp/file/new.txt/new.txt?

Last edited by RudiC; 08-29-2017 at 08:34 AM..
# 3  
Old 08-29-2017
Hi Rudic,

I am new to shell and trying to write the script for the above task. Intially new.txt will be empty.

Requirment is to update the version of deployment packages.First time CMD_HG-120-V1 should be updated in new.txt.
Next time when i run the script it should be CMD_HG-120-V2..Simiraly CMD_HG-120-V3...It should take latest version from new.txt file and increment the version in new.txt file.

This time it should be CMD_HG-120-V4 if the previous version is V3 in txt file.

CMD_HG-120-V1
CMD_HG-120-V2
CMD_HG-120-V3
....

Last edited by naresh2389; 08-29-2017 at 07:02 AM..
# 4  
Old 08-29-2017
Seriously: DON'T edit post that others have referenced / answered, pulling the rug from under their feet, and wasting peoples' time who tried to analyze and understand what you posted.
Secondly: It is disappointing that you don't answer the questions asked concerning your post and the script therein. Do you expect people to code the script for you without any interaction of yours?
# 5  
Old 08-29-2017
Very Sorry Rudic i thought my question is looking confusing so i edited to make it more clear.
# 6  
Old 08-29-2017
Hmmm... howsoever, try
Code:
myfile="/tmp/file/new.txt"
num=$(tail -1 "$myfile" 2>/dev/null ||  echo CMD_HG-120-V0)
echo "${num%[[:digit:]]*}$((${num##*[[:alpha:]]} + 1))" >> "$myfile"

# 7  
Old 08-29-2017
Quote:
Originally Posted by naresh2389
Very Sorry Rudic i thought my question is looking confusing so i edited to make it more clear.
There is a huge difference between making a request more clear and removing the code about which you were asking questions. And, changing the requirements of your script after people have responded to your original question just confuses readers of your thread who are trying to help you and trying to make sense of the non-sensical responses to a post that no longer matches your original post.

If we go back to your original post (with CODE tags added, as captured in post #2 in this thread) and we assume that your file contains:
Code:
CMD_HG-120-V1
CMD_HG-120-V1-DEV-SUCCESS
CMD_HG-120-V2
CMD_HG-120-V2-DEV-SUCCESS
CMD_HG-120-V3

then what is assigned to the variable oldnum by the command:
Code:
oldnum=`cut -d '-' -f3 /tmp/file/new.txt

? Is that what you wanted?

What happens when you add 1 to a multi-line non-numeric string value using expr? Does it give you a number or does it print a diagnostic message instead?

If you're unwilling to answer these questions and the questions RudiC asked in post #2, this thread will be closed. We are here to help you learn how to fix your code to get the results you want. We are not here to act as your unpaid programming staff nor to try to guess at what you are trying to do.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to manipulate a text file and store each version for every changes in a directory?

I attached both picturehttps://1drv.ms/t/s!Aoomvi55MLAQh1jODfUxa-xurns_ and *.txt file of a sample work file. In this file Reactions which only start with "r1f", "r2f", "r3f"......and so on. And for each reaction the reaction rates is situated couple of lines later with a "+" sign. For each... (1 Reply)
Discussion started by: Atta
1 Replies

2. UNIX for Beginners Questions & Answers

awk to update file with partial matching line in another file and append text

In the awk below I am trying to cp and paste each matching line in f2 to $3 in f1 if $2 of f1 is in the line in f2 somewhere. There will always be a match (usually more then 1) and my actual data is much larger (several hundreds of lines) in both f1 and f2. When the line in f2 is pasted to $3 in... (4 Replies)
Discussion started by: cmccabe
4 Replies

3. Shell Programming and Scripting

Update specific field in a line of text file

I have a text file like this: subject1:LecturerA:10 subject2:LecturerA:40 if I was given string in column 1 and 2 (which are subject 1 and LecturerA) , i need to update 3rd field of that line containing that given string , which is, number 10 need to be updated to 100 ,for example. The... (6 Replies)
Discussion started by: bmtoan
6 Replies

4. Red Hat

Specify version in yum update

Hello All, I am trying to upgrade redhat from 5.6 to 5.8. When i use Code: yum update -y it installs 5.9 I dont want 5.9, instead i would like to upgrade to 5.8 is there anyway to specify a version when you are doing Code: yum update (4 Replies)
Discussion started by: adam25ca
4 Replies

5. UNIX for Dummies Questions & Answers

Auto Version update

We have a version for every file like RHZ 1.0 / Ver 1.4.2 etc. Whenever I place a new file with same file name i want the version to get auto upgraded. So can anyone suggest code.. Eg: RHX 1.0 -> RHZ 1.1 Ver 1.4.2. -> Ver 1.4.3 (1 Reply)
Discussion started by: krishna87
1 Replies

6. Solaris

Update java version in Zone

I am using a solaris zone in Sun blade-T6320 which has a java version "1.5.0_18" i want to update it to 1.6.0.16 or higher , how can i do that , does i need to add the new java package to the global server or just instal it in the zone itself. do i need to remove the older version or and install... (1 Reply)
Discussion started by: Sojourner
1 Replies

7. Shell Programming and Scripting

Update strings in text file

I have a txt file that contains multiple occurrances of: <MoreFlag>Y</MoreFlag> I want to update these to: MorePACFlag>Y</MorePACFlag> How would I do this? Cheers Paul (2 Replies)
Discussion started by: runnerpaul
2 Replies

8. Red Hat

war file deployment

Hi Experts. I need to install one help library in Fedora 13 and I got the installation document for it: --------------------------------------------------- users need their own J2EE web application server to be able to complete this installation. The server must support J2EE - JSP... (3 Replies)
Discussion started by: orma
3 Replies

9. Shell Programming and Scripting

Trying to Parse Version Information from Text File

I have a file name version.properties with the following data: major.version=14 minor.version=234 I'm trying to write a grep expression to only put "14" to stdout. The following is not working. grep "major.version=(+)" version.properties What am I doing wrong? (6 Replies)
Discussion started by: obfunkhouser
6 Replies
Login or Register to Ask a Question