Assigning a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Assigning a variable
# 1  
Old 05-05-2015
Assigning a variable

I have a date column as 06302015 but I need to have variable which extracts 063015.

Am trying something like below but it is not assigning

Please let me know if am missing something. Thanks in advance.


################################

Code:
 #!/usr/bin/ksh
 
DT=06302015

 DT_ETL= echo "$DT" | cut -c1,2,3,4,7,8
 
EXTENSION="$DT_ETL"
  
 exit 0

################################

Last edited by Don Cragun; 05-06-2015 at 03:55 AM.. Reason: Add CODE tags.
# 2  
Old 05-06-2015
1. Avoid spaces around =

2. DT_ETL=$(echo "$DT" | cut -c1,2,3,4,7,8)
# 3  
Old 05-06-2015
First: CODE tags are VERY important. Without them, we couldn't see that you didn't have the #! on the 1st line of your script at the start of the line. With the #! following a space, it is just a comment and your script will be run by the default shell on your system; not /usr/bin/ksh.

And, if you're using the Korn shell (or any shell that performs the variable expansions required by the POSIX standards), you can run this faster using shell expansions instead of invoking an external utility (cut):
Code:
#!/usr/bin/ksh

DT=06302015
mmdd=${DT%????}
yy=${DT#??????}
EXTENSION="$mmdd$yy"
printf '%s\n' "$EXTENSION"
exit 0

which prints:
Code:
063015

instead of just setting a variable that can't be used after your script exits.
# 4  
Old 05-06-2015
You could also use
Code:
printf "%s\n" ${DT:0:4}${DT:6:2}
063015

# 5  
Old 05-06-2015
Quote:
Originally Posted by RudiC
You could also use
Code:
printf "%s\n" ${DT:0:4}${DT:6:2}
063015

With bash or a 1993 or later ksh; yes. But, the substring extraction parameter expansions are not required by the standards and do not appear in nearly as many shells as the ${var#pattern} and ${var%pattern} expansions.
# 6  
Old 05-06-2015
Hi All,

Thanks for the solutions.

Am able to extract the expected value but not able to assign to another variable. When I assign to another variable it becomes blank.

Even I tried with printf and it is also not working.

Code:
#!/usr/bin/ksh

DT=06302015

DT_ETL=$(echo "$DT" | cut -c1,2,3,4,7,8) 

EXTENSION="$DT_ETL"

exit 0

Output:

Code:
ksh -x test.ksh 06302015
+ DT=06302015
+ echo 06302015
+ cut -c1,2,3,4,7,8
+ 063015
+ DT_ETL=
+ EXTENSION=


Last edited by Don Cragun; 05-06-2015 at 04:14 PM.. Reason: Change ICODE tags to CODE tags.
# 7  
Old 05-06-2015
Difficult to believe ...
Code:
DT=06302015
+ DT=06302015
DT_ETL=$(echo "$DT" | cut -c1,2,3,4,7,8) 
echo "$DT" | cut -c1,2,3,4,7,8
++ echo 06302015
++ cut -c1,2,3,4,7,8
+ DT_ETL=063015

Are you sure you're showing the entire unmodified code snippet?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assigning value to a variable

Unable to get the value to a variable. set -x cd $HOME echo "Enter the server name" read a echo $a i=4 j=1 k = ps -ef | awk '/server1/{ print $4 }' | tail -$i | head -$j` echo $k When I do the same in command line it works, however the same does not work when I provide that in the... (1 Reply)
Discussion started by: venkidhadha
1 Replies

2. Shell Programming and Scripting

Assigning a value to a variable

Hi I have a script that accepts an input date in YYYY-MM-DD format. After that, I used sed to delete the hyphen (-) which gives me an output YYYY MM DD. My question is, how can I assign those three numbers to a three different variable. Example: 2013-11-23 will become 2013 11 23... (4 Replies)
Discussion started by: erin00
4 Replies

3. Shell Programming and Scripting

Assigning file to a variable

Hi, I have a list of files in a directory. Each file has a .txt and a .log extension i.e. file.txt & file.log, file1.txt & file1.log etc. The file with the .log extension may not always exist alongside the file with the .txt extension. I need to copy the .txt file if there is a corresponding... (6 Replies)
Discussion started by: brunlea
6 Replies

4. Shell Programming and Scripting

problem in assigning value to variable have value fo other variable

my script is some thing like this i11="{1,2,3,4,5,6,7,8,9,10,11,}" echo "enter value" read value ..............suppose i11 x="$value" echo "$($value)" .............the echo should be {1,2,3,4,5,6,7,8,9,10,11,} but its showing "i11" only. plz help me out to get desired... (10 Replies)
Discussion started by: sagar_1986
10 Replies

5. Shell Programming and Scripting

Removing a character from a variable and assigning it to another variable?

Hi folks. I have this variable called FirstIN that contains something like this: 001,002,003,004... I am trying to assign the content of this variable into ModifiedIN but with the following format : 001 002 003 004...(changing the commas for spaces) I thought about using sed but i am not... (17 Replies)
Discussion started by: Stephan
17 Replies

6. Shell Programming and Scripting

Assigning value to a variable

Is there any difference between: set variable=39 and variable=39 (1 Reply)
Discussion started by: proactiveaditya
1 Replies

7. Shell Programming and Scripting

Assigning value to a variable

can we make a global variable and store character values and add other values to that variable ?? for example a="hello, John" and can we add value ". How are you? so a can have "hello, John. How are you?" can someone help me?? (2 Replies)
Discussion started by: bonosungho
2 Replies

8. Shell Programming and Scripting

assigning a variable

hi all, in ksh, how do i assign the output of a find command to a variable, e.g am trying something like this : totalNoFiles=$(print find ./ -name "SystemOut*.log"); but when i echo $totalNoFiles it displays find ./ -name "SystemOut*.log" instead of the total number of... (2 Replies)
Discussion started by: cesarNZ
2 Replies

9. Shell Programming and Scripting

Assigning Value of variable

Hi In my shell script, I'm trying to find the line count of a file and assign it to a variable. LINE_COUNT=$(wc -l $FILE_NAME) But when i display LINE_COUNT, i'm getting the linecount concatenated with the file name. I want only the number. How can i get the line count alone ? Someone... (2 Replies)
Discussion started by: janemary.a
2 Replies

10. Shell Programming and Scripting

Assigning a value to variable

Another newbie to Unix scripting Q.. How do you assign a value resulting from a command, such as awk, to a variable. I am currently trying:- $awk '{print $1}' file1 > variable1 with no change to $variable1. The line: $awk '{print $1}' file1 does print the first line of the... (3 Replies)
Discussion started by: sirtrancealot
3 Replies
Login or Register to Ask a Question