How to pass the parameter value to a... ?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to pass the parameter value to a... ?
# 1  
Old 02-10-2011
How to pass the parameter value to a... ?

Hello

I have a simple code like this one:

Code:
#!/bin/ksh
VER=$1
cat /usr/text | while read line
 do
  echo $line 
 done

Let's say $1=1.0.0 and the contents of text is:
abcd.cfg
asdf
I would like the output to be like this
abcd1.0.0.cfg
asdf1.0.0
I am thinking of passing the value of the parameter to the text file. But i dont know if it is possible.
# 2  
Old 02-10-2011
Code:
X=${1:-1.0.0}
while IFS=. read NAME EXT; do
  echo $NAME$X.$EXT
done < file

This User Gave Thanks to Scott For This Post:
# 3  
Old 02-10-2011
I'd rather edit with sed:
Code:
 
sed '
  s/\.cfg$/'"$1"'/
  t
  s/$/'"$1"'/
 ' /usr/text

However, you can ksh-substring your variables like line: ${line#*.} is everything after the first dot, ${line##*.} is everything after the last dot, ${line%%.*} is everything before the first dot. My mnemonic is # is pound soft on the nose, %% is get a big percent in the end. The wild card metacharacters are shell file-glob like case, not regex as used in grep and sed.
This User Gave Thanks to DGPickett For This Post:
# 4  
Old 02-14-2011
Both method works.
Thanks!

I have a question regarding DGPickett's suggestion. How do i use that method if i have a text file which doesnt have a "." on it? So if the script encountered a line like that it will just append the number.

By the way, i used the ${line#*.} , ${line%%.*} method.

Last edited by khestoi; 02-14-2011 at 01:45 PM..
# 5  
Old 02-14-2011
I don't think either solution worked, actually Smilie

Here's a fix for the sed one (which forgot to put the extension back on when there was a "dot"):
Code:
sed '
  s/\.cfg$/'"$1"'&/
  t
  s/$/'"$1"'/
 ' file

And for the shell one (which left a trailing "dot" when there was no extension):
Code:
X=${1:-1.0.0}
while IFS=. read NAME EXT; do
  echo $NAME$X${EXT:+.$EXT}
done < file

# 6  
Old 02-15-2011
thanks for all the help guys finally got my script working.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass parameter

Hi, I have following for loop , please let me know how to get ${TXP_EXT_TABLE_${i}_SQL} parameter with 1DAY and 7DAY values. for i in 1DAY 7DAY do ${NZSQL_DIR}/nzsql -h ${HOST} -time -v ON_ERROR_STOP=1 -f ${SQL_DIR}/${TXP_EXT_TABLE_${i}_SQL} > ${TMP_LOG_FILE} 2>&1 done ... (4 Replies)
Discussion started by: sandy162
4 Replies

2. Shell Programming and Scripting

pass parameter to SED

My script(ksh) works fine for --------------------------------------------------- sed -n '28,31p' ${l_name} >> ${LOG_DIR}/Email.txt --------------------------------------------------- But I wand to pass parrmeter to this syntax I did the following things ... (14 Replies)
Discussion started by: deep_kol
14 Replies

3. Shell Programming and Scripting

How to pass two word parameter

Hi, How to pass parameter to run folloing script? #parameters are div, dept, style U run_convert_pdm.ksh Mens 44 7542 U run_convert_pdm.ksh "Mens Knit" 44 7541 The first command works fine but the second needs to have two words together , it does not work even if I have used double... (15 Replies)
Discussion started by: sandy162
15 Replies

4. Shell Programming and Scripting

How to pass a parameter from the terminal?

Hi, I am new in Ubuntu, I will be glud to know: 1. How to pass a parameter from the terminal to a file that I write in shell script. What is the command line I need to write in the terminal? 2. How to get the parameter in the file? What do I need to write in the file? 3. What kind of file is... (1 Reply)
Discussion started by: vess
1 Replies

5. UNIX for Dummies Questions & Answers

How to pass parameter to subroutine

I have something like cp -p <dir>filename1.dat <dir2>filename1.dat there are many other operations in it I mean that filename1.dat will keep on changing I need to write a subroutine so that i can pass filename1 or 2 or 3 .dat as parameter Thanking you in advance Any help wuld be appreciated (2 Replies)
Discussion started by: ssuresh1999
2 Replies

6. Shell Programming and Scripting

How to pass a parameter

Hi all, How to pass a parameter from a oracle pl/sql procedure parameter to shell environment and use it? (1 Reply)
Discussion started by: megh
1 Replies

7. Shell Programming and Scripting

Pass parameter into script

I would like to write a scirpt a.sh that it first checks the first parameter of the input. If it fulfill some condition ,then run an executable program b by using all the parameter. ie. > ./a.sh 10 20 30 40 50 Then a.sh first checks the first parameter, 10, if it mathes the requirement, then... (2 Replies)
Discussion started by: alfredo
2 Replies

8. UNIX for Dummies Questions & Answers

PASS parameter to AWK

Hi, Can i pass a parameter(not a file name) as a parameter to a awk program? eg; $awk -f test 1 2 3 here test is the filename...and 1,2,3 are the i/p parameters? thank you:-) (2 Replies)
Discussion started by: unisam
2 Replies

9. UNIX for Dummies Questions & Answers

Pass Parameter to Another Script

I have a piece of code that I do not want to continuously repeat. I want to call script2 from script1 and pass a parameter. Here is an example: Script1: ....... nohup ./Script2 PARAMETER ....... Script2: if # Checks if any params. then echo "No parameters passed to function." ... (4 Replies)
Discussion started by: rvprod
4 Replies
Login or Register to Ask a Question