Combine 2 values into single variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Combine 2 values into single variable
# 1  
Old 09-07-2011
Combine 2 values into single variable

Hi gurus,
I need to manipulate the output of a database query. The output contains 2 fields (asset and serial number) and I'd like to combine them into a single value, seperated by whitespace.

the orginal data is in seprate fileds and of the following format:
Code:
asset serial
asset serial
etc    etc

so I'd like to combine the asset value with the serial value.

my solution so far almost gets it done, but I can't seperate the values with whitespace, as it's interpreted as a new line when I feed the values into a loop.
Code:
for i in `database query|awk '{print substr($1,1,20),substr($2,8,10)}'|xargs -n 2 | awk '{ print $1","$2 }'`;do echo $i;done

gives me
Code:
asset, serial
asset, serial
etc, etc

but if I replace the "," with whitespace, the output is:
Code:
asset
serial
asset
serial
etc
etc

instead of
Code:
asset serial                 (Variable 1)
asset serial                 (Variable 2)

I'm looking for the simplest way to achieve the end result, so if there's some perl or sed magic that can do a better job than awk, I'm happy to hear about it.

Thanks very much.

Last edited by Franklin52; 09-07-2011 at 10:45 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 09-07-2011
Code:
 
awk '{ print $1","$2 }'
to
awk '{ printf("%s %s",$1,$2 }'

---------- Post updated at 02:00 PM ---------- Previous update was at 01:59 PM ----------

what is the output of database query

From that what you extracting ?

post some output lines of the database query command
# 3  
Old 09-07-2011
Instead of giving "," as delimiter awk '{ print $1","$2 }' in ur code .. give space as delimiter there itself awk '{ print $1" "$2 }' . This might help u ..
# 4  
Old 09-08-2011
Thanks for the replies.

itkamaraj, your solution combined all fields into a single record. What I want is to combine field 1 and field 2 into a single variable, so that the result is "asset serial", etc, etc,

The data is originally formatted in 2 columns, asset followed by serial and there are several hundred records.

jayan_jay, I tried your suggestion initially but the output is seperated by a new line if I run the output through a for/next loop. I want to loop over the data so that I have "asset serial" as a single variable which I can supply to another script.

Thanks for help received so far.
# 5  
Old 09-08-2011
Try:
Code:
database_query | while read record; do
  echo "$record"
done

# 6  
Old 09-08-2011
Try this
Code:
awk '{ printf("%s %s\n",$1,$2 }'

Slight modification in itkamaraj's code.

--ahamed
# 7  
Old 09-09-2011
Thank you to everybody.

The solution was to set IFS to newline so that the loop did not interpret whitespace as a field seperater.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Combine multi-row cell into a single line

My CSV file looks similar to this example (the K, L, and M are in the same cell as J but each on a new line within that cell): 1, A, B, C, D 2, E, F, G, H 3, I, J N, O, K L M, 4, P, Q, R, S I would like to have it look like this: 1, A,... (6 Replies)
Discussion started by: Kim Ashby
6 Replies

2. UNIX for Dummies Questions & Answers

Combine 2 Outputs with a single Checklist

Checklist 1.1; Contains Solaris 1.2; Contains Patches 1.3; <no output> 1.3.1; <no output> Output1 1.1 Solaris 10 8/07 s10s_u4wos_12b SPARC 1.2 Patch: 127714-03 Obsoletes: Requires: 120011-14 Incompatibles: Packages: SUNWsshcu, SUNWsshdu, SUNWsshu Patch: 128253-01 Obsoletes:... (5 Replies)
Discussion started by: alvinoo
5 Replies

3. Shell Programming and Scripting

Combine multiple lines into single line

Hi All , I have a file with below data # User@Host: xyz @ # Query_time: t1 Lock_time: t2 Rows_sent: n1 Rows_examined: n2 SET timestamp=1396852200; select count(1) from table; # Time: 140406 23:30:01 # User@Host: abc @ # Query_time: t1 Lock_time: t2 Rows_sent: n1 Rows_examined:... (6 Replies)
Discussion started by: rakesh_411
6 Replies

4. Shell Programming and Scripting

Search Pattern and combine into single file

Hi Experts Please help me out with the following thing: 2 files and want the output file: {No for using FOR loop because I got 22 million lines} Tried that "It processes only 8000 records per hour" I need a faster way out !!! FileA: 9051 9052 9053 9054 9055 9056 9057 9058 9059 ... (5 Replies)
Discussion started by: navkanwal
5 Replies

5. Shell Programming and Scripting

Combine Multiple Files into Single One File One after other

I am trying to combine 4 .dat files into one single Output file Inputs are:- file123.dat, file256.dat, file378.dat & file490 Expected Output:- FileName=file1 {text from file1} EOF {blank line} FileName=file2 {text from file2} EOF {blank line} FileName=file3 {text from file3} EOF... (4 Replies)
Discussion started by: lancesunny
4 Replies

6. Shell Programming and Scripting

how to find first files in a directory and combine them as a single file?

i have below list of files in a directory. /root/admin/files/file1.txt /root/admin/files/file2.txt /root/admin/files/file3.txt /root/admin/files/pattern.txt /root/admin/files/server.txt i need combine the above text files in the below sequence, file1.txt, pattern.txt,server.txt =>... (8 Replies)
Discussion started by: vel4ever
8 Replies

7. Shell Programming and Scripting

Using multiple values for single variable in a loop

Hello Guys, I have a small loop problem as below. I have 3 different values to be used while running the same script - va1="some-value1" va2="some-value2" va3="some-value3" Now I want to use these three variable values to be used for running the same command, like - while... (1 Reply)
Discussion started by: rockf1bull
1 Replies

8. Shell Programming and Scripting

Combine in single file

I have 2 files: phone.txt and mobile.txt ex. phone.txt MOBILENO|DISABLE_DATE 919687877754|9/1/2011| 919687877762|9/1/2011| 919687880573|9/1/2011| 919687882658|9/2/2011| Ex. mobile.txt MOBILENO |TIME 919687880573|2011-09-17 12:23:40| 919687882658|2011-10-10 21:15:33|... (4 Replies)
Discussion started by: khingx
4 Replies

9. Shell Programming and Scripting

Combine multiple lines in single line

This is related to one of my previous post but now with a slight difference: I need the "Updated:" to be in one line as well as the "Information:" on one line as well. These are in multiple lines right now as seen below. These can have 2 or more lines that needs to be in one line. System name:... (8 Replies)
Discussion started by: The One
8 Replies

10. UNIX for Dummies Questions & Answers

Now to merge/combine several filesystems/harddisks to show up as one single?

hi i have a server with 4 harddisks now i want to somehow combine these 4 harddisks to show up to the system as 1 big harddisk, so i can put my web-root into that big virtual partition. can you guys please point me into to the right direction to achieve this? thanks a lot in advance! (2 Replies)
Discussion started by: scarfake
2 Replies
Login or Register to Ask a Question