Changing value using 1 shell command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Changing value using 1 shell command
# 1  
Old 03-15-2015
Changing value using 1 shell command

Hello all,

I would like to know how to change a value in my file.txt with 1 command. Using sed seems impossible since it contains \n and \s...

For example:
Code:
  player:
    version: V6R2013xD3HF5v1
  partchecker:
    version: 6.142.1-rc6
  player_old:
    version: V6R2013xD3HF5v1
  manager:
    version: V6R2013xD3HF5v1

Here, I would like change the version number of "partchecker" without change all other version values and keeping the file structure (new line, space...).

Thank you guys,
# 2  
Old 03-15-2015
Try:
Code:
sed '/partchecker/{N; s/[^:]*$/ 6.150/;}' file

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 03-15-2015
Thank you,

The command line works fine.

But if I call your command line from a BASH file, it does not work. Sounds weird
Code:
if [[ $ENV == "PRD" ]]; then
echo " Environment : $ENV"
echo " Pillar file : $PRDFILE"
echo " CLS Program : $PROGRAM"
echo " Old Version : $OLDVERSION"
echo " New Version : $NEWVERSION"
sed '/$PROGRAM/{N; s/[^:]*$/ $NEWVERSION/;}' $PRDFILE
#echo " ... Done !"
fi

The sed command does not work.
# 4  
Old 03-15-2015
You need to use double quotes, rather than single quotes. Try:
Code:
sed "/$PROGRAM/{N; s/[^:]*$/ $NEWVERSION/;}" "$PRDFILE"

Otherwise the shell variables do not get expanded...
This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 03-15-2015
You rox Smilie

---------- Post updated at 11:27 AM ---------- Previous update was at 11:12 AM ----------

Last issue (lol): When I want to replace "player", it replaces "player_old" also Smilie Is it a way to fix that ? thanks
# 6  
Old 03-15-2015
How about:
Code:
sed "/$PROGRAM:/{N; s/[^:]*$/ $NEWVERSION/;}" "$PRDFILE"

or beter yet, perhaps:
Code:
sed "/^ *$PROGRAM:/{N; s/[^:]*$/ $NEWVERSION/;}" "$PRDFILE"

This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 03-15-2015
sounds great Smilie

Thank you dude !
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing shell from a script and running something from the new shell

Hi We use "tcsh" shell . We do the following steps manually: > exec ssh-agent zsh > python "heloo.py" (in the zsh shell) I am trying to do the steps above from a shell script This is what I have so far echo "Executing " exec ssh-agent zsh python "hello.py" exit 0 Problem is... (5 Replies)
Discussion started by: heman82
5 Replies

2. Shell Programming and Scripting

changing a shell

i have created users but those are not listing in HOME directory...and i want to change a shell to another shell...can any one reply me with solutions.. (4 Replies)
Discussion started by: potu@123
4 Replies

3. Shell Programming and Scripting

Changing from one shell to another

Hi all,I installed cent OS in my machine. Now when i open the terminal and start writing some commands, then by default with which shell i am working with? Will i be able to change the shell and then run a few commands? if possible then how to change the shell? Please reply Thank you (8 Replies)
Discussion started by: gautamshaw
8 Replies

4. UNIX for Dummies Questions & Answers

changing shell???

hi guys I have a user that has been used for long time now that runs o C Shell... now there is a need to change it to Bash Shell? Can I cause a problem changing his shell from C to bash? I mean apps or variables? thanks a lot (3 Replies)
Discussion started by: karlochacon
3 Replies

5. Shell Programming and Scripting

Changing the shell prompt

Hi, I want to change the shell prompt, using the cd command. I have a shell prompt like this - p78-mfx(dgaw1078/9781)$ Now i do this - p78-mfx(dgaw1078/9781)$ cd log4j here the shell prompt should change like this - p78-mfx(dgaw1078/9781)log4j$ (6 Replies)
Discussion started by: arunkumarmc
6 Replies

6. OS X (Apple)

Changing Default Shell

I bought a used MacBook G4 with Tiger 10.4.11 Running fine, then I noticed a few things were missing. I don't have Terminal or Netinfo Manager in my Utilities! I downloaded iTerm, but for some reason my shell is set to /dev/null I know I can change my shell using Netinfo Manager, but I don't... (5 Replies)
Discussion started by: Ricardo-san
5 Replies

7. Shell Programming and Scripting

changing shell while using ssh

Hello, I am trying to ssh to a remote machine then change the shell and execute the script. However the ssh session hangs when i try to change the shell ssh user@host 'csh ; source /home/cshProfile; $HOME/exec.sh' if i do ssh user@host ' $HOME/exec.sh' This works however i... (2 Replies)
Discussion started by: amit1_x
2 Replies

8. Shell Programming and Scripting

Regarding changing shell thru script

Guys can I change the shell thru script, and after changing i want the script to continue on the previous machine. Or please suggest other alternative if any??? #!/bin/ksh HOST=`hostname` echo "Running the script..." for MyServer in `cat ServerNames.txt` do echo "\n Logging onto... (4 Replies)
Discussion started by: sdosanjh
4 Replies

9. 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

10. UNIX for Advanced & Expert Users

changing shell type from sh to ksh

Could someone please advise, what's the best way to changing the shell type from sh to ksh. When I login into a unix server it takes you directly to sh, is there a way of amending the .profile to use ksh instead. Or is there some other way ? Ideally it would be good to be done from the login... (10 Replies)
Discussion started by: venhart
10 Replies
Login or Register to Ask a Question