Visit Our UNIX and Linux User Community

Assign value to variable

Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Assign value to variable
# 1  
Old 08-04-2019
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

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

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


Even if i find multiple values like Rows:131554 Rows:131554 , I need to assign only one value to count varaible
# 2  
Old 08-04-2019
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
read X count X < <(hive --orcfiledump /hdfs_path/ | grep -i rows | sort -u)

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

# 6  
Old 08-05-2019
Originally Posted by MadeInGermany
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:

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.

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

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

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

Previous Thread | Next Thread
Test Your Knowledge in Computers #254
Difficulty: Easy
'Steppenwolf' was the code name given to the first Apple Computer before it was announced publicly.
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