Visit The New, Modern Unix Linux Community


Assign value to variable


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Assign value to variable
# 1  
Assign value to variable

Hi Guys,

I need to assign the value of which has rows to a variable, Can you advise how to do that

Code:
hive --orcfiledump /hdfs_path/ | grep  "Rows"
Rows: 131554

I need to assign this row count itself to a unix variable
Code:
count=$(hive --orcfiledump /hdfs_path/ | grep  "Rows")

Expected
count=131554

Even if i find multiple values like Rows:131554 Rows:131554 , I need to assign only one value to count varaible
# 2  
Are those multiple values identical, i.e. always e.g. Rows:131554? If not, which one to select? If identical, and your shell (which alas you fail to mention) is (a recent) bash, try
Code:
read X count X < <(hive --orcfiledump /hdfs_path/ | grep -i rows | sort -u)

# 3  
Those counts will be always identical, So will it work ?
# 4  
You tell me.
# 5  
With sed
Code:
count=$(hive --orcfiledump /hdfs_path/ | sed -n 's/Rows: //p')

# 6  
Quote:
Originally Posted by MadeInGermany
Code:
sed -n 's/Rows: //p'

If you want to make sure there is only one value printed (like a implicit |uniq) you need to quit after the first match:

Code:
sed -n '/^Rows:/ {;s/^Rows:[^0-9]*\([0-9][0-9]*\).*/\1/p;q;}'

This will print the first line starting with "Rows:" and leave sed after printing it. I have tried to improve the regexp so that (variable numbers of) blanks before and behind the number eventually get deleted too.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 7  
Oh dear, my last post missed the "multiple occurrences" requirement.
Another variant of the sed solution
Code:
count=$(hive --orcfiledump /hdfs_path/ | sed -n '/^ *Rows: */{;s///;s/ .*//;p;q;}')

With awk
Code:
count=$(hive --orcfiledump /hdfs_path/ | awk '$1=="Rows:"/{print $2; exit}')

A pure shell variant
Code:
while
  read X count Y &&
  [ "$X" != "Rows:" ]
do
  :
done < <(hive --orcfiledump /hdfs_path/)


Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #505
Difficulty: Medium
An executable statement may not invoke (or call or execute) another procedure (also called subroutine, function, method, etc.),
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

I have the following script, and I want to assign the output ($10 and $5) from awk to N and L: grdinfo data.grd | awk '{print $10,$5}'| read N L output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)
Discussion started by: geomarine
8 Replies

2. UNIX for Beginners Questions & Answers

Need to pass variable in a command and assign value to a variable

Hello All, Hope you're doing well ! I am trying below command to be passed in a shell script, header_date_14 is a variable and $1 is the name of a file I intend to pass as a command line argument, however command line argument is not being accepted. header_date_14=$(m_dump... (8 Replies)
Discussion started by: ektubbe
8 Replies

3. Shell Programming and Scripting

Assign a variable with awk

I launch 'netstat -a', if string 'ESTABLISHED' found, then VAR=1 #!/bin/bash VAR=0; netstat -a | awk '$6 ~ /ESTABLISHED/ {VAR=1}' I cannot find the right syntax. thanx guys! (3 Replies)
Discussion started by: arpagon
3 Replies

4. Shell Programming and Scripting

Shell assign variable to another variable

How can I assign a variable to an variable. IE $car=honda One way I can do it is export $car=honda or let $car=2323 Is there any other ways to preform this task (3 Replies)
Discussion started by: 3junior
3 Replies

5. Shell Programming and Scripting

assign awk's variable to shell script's variable?

Dear All, we have a command output which looks like : Total 200 queues in 30000 Kbytes and we're going to get "200" and "30000" for further process. currently, i'm using : numA=echo $OUTPUT | awk '{print $2}' numB=echo $OUTPUT | awk '{print $5}' my question is : can I use just one... (4 Replies)
Discussion started by: tiger2000
4 Replies

6. Shell Programming and Scripting

Assign this to a variable....

bash-3.00$ /usr/bin/netstat -an -f inet | awk -F' ' '{if ($1$4 == "tcp*.21")print $5}' *.* bash-3.00$ A=` /usr/bin/netstat -an -f inet | awk -F' ' '{if ($1$4 == "tcp*.21")print $5}'` bash-3.00$ echo $A db2_lastdone.bkp As you can see ,after running command i get *.* in return but the same... (5 Replies)
Discussion started by: ak835
5 Replies

7. Shell Programming and Scripting

Not able to assign a value to variable

Hi Experts, I am facing some problem while developing the script.My input config.csv file contains the three columns namely pathname,filename,filetype.Based on the file type i have to use ftp command that is if filetype=csv then do ftp. The input file is cat config.csv... (13 Replies)
Discussion started by: Amey Joshi
13 Replies

8. Shell Programming and Scripting

assign a value to a variable

I have a list of names in a file. i want to assign those names to a variable in such a manner eg: $cat file.txt pete lisa john var=pete-lisa-john how do i do this in shell scripting? (10 Replies)
Discussion started by: Shivdatta
10 Replies

9. Shell Programming and Scripting

assign a value to variable

I have to assign a result of a query to a vairable like this how can i do this Query = select count(*) from table x=`db2 ${Query}| sed -n '4p'` but this doesn't work, is there any other way to assign the result without redirecting the result to temp file. . Thanks Mark. (3 Replies)
Discussion started by: markjason
3 Replies

10. UNIX for Dummies Questions & Answers

assign to variable

why i can't use this command: echo $arg | cut -c 1,2 | read remainArg or echo $arg | cut -c 1,2 | read $remainArg so that the result will be assign to remainArg. Anyway to do this? :) (1 Reply)
Discussion started by: AkumaTay
1 Replies

Featured Tech Videos