Assign value to variable


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 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/)

Login or Register for Dates, Times and to Reply

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

Test Your Knowledge in Computers #859
Difficulty: Medium
AJAX is designed for two-way client-server communications.
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. UNIX for Dummies Questions & Answers

How to assign echo in variable

I've testing the following code: echo test.txt | cut -d . -f1and get the output "text" So why can't i assign the command to a variable? VAR='"echo test.txt | cut -d . -f1"' echo $VAR (5 Replies)
Discussion started by: jl487
5 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