Concatenating two mutiline variables in a bash


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Concatenating two mutiline variables in a bash
# 1  
Old 05-04-2019
Concatenating two mutiline variables in a bash

Hi All,
I am having a situation where am capturing results in two variables from an xml file. However, I am looking to print those two variables with pipe in between them and these variable are multi-line.
This is how my 1st variable looks like:
Code:
20181225010
20190224010
20190224010
20190303010
20190304010
20190306010
20190319010
20190320010
20190321010

This is my 2nd variable
Code:
906676175
907339851
907453926
907453962
907687907
909465451
909587811
909276884
913772782

Expected output:
Code:
20181225010|906676175
20190224010|907339851
20190224010|907453926
20190303010|907453962
20190304010|907687907
20190306010|909465451
20190319010|909587811
20190320010|909276884
20190321010|913772782

Any assistance would be greatly appreciated.
# 2  
Old 05-04-2019
Hello svks1985,

Could you please try following.
Code:
awk 'FNR==NR{a[FNR]=$0;next} {print a[FNR]"|"$0}' <(echo "$var1")  <(echo "$var2")

2nd solution: With paste.
Code:
paste -d'|' <(echo "$var1") <(echo "$var2")

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 05-04-2019
Thanks much RavinderSingh13.
1st solution is printing the output like this
Code:
|20181225010
|20190224010
|20190224010
|20190303010
|20190304010
|20190306010
|20190319010
|20190320010
|20190321010
|858485461
|881854750
|881854752
|886257846
|887682847
|886981196
|894784176
|895564612
|894060226

However paste option is working just fine.
# 4  
Old 05-04-2019
Try also
Code:
ARR1=( $VAR1 )
ARR2=( $VAR2 )
for IX in ${!ARR1[@]}; do echo "${ARR1[IX]}|${ARR2[IX]}"; done
20181225010|906676175
20190224010|907339851
20190224010|907453926
20190303010|907453962
20190304010|907687907
20190306010|909465451
20190319010|909587811
20190320010|909276884
20190321010|913772782


Be aware that RavinderSingh13's 2nd proposal requires a recent shell offering "process substitution".
This User Gave Thanks to RudiC For This Post:
# 5  
Old 05-04-2019
Thanks RudiC
Your solution works just fine.
However, I would greatly appreciate if you can provide some explanation around it. To be specific, I am looking for
Code:
for IX in ${!ARR1[@]}

# 6  
Old 05-04-2019
man bash:
Quote:
for name [ [ in [ word ... ] ] ; ] do list ; done
The list of words following in is expanded, generating a list of items. The variable name is set to each element of this list in turn, and list is executed each time.
and

Quote:
Arrays
... It is possible to obtain the keys (indices) of an array as well as the values. ${!name[@]} and ${!name[*]} expand to the indices assigned in array variable name.
These 2 Users Gave Thanks to RudiC For This Post:
# 7  
Old 05-04-2019
Your assistance is truly appreciated. Thanks much!
This User Gave Thanks to svks1985 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

2. Shell Programming and Scripting

BASH arrays and variables of variables in C++

Sometimes it is handy to protect long scripts in C++. The following syntax works fine for simple commands: #define SHELLSCRIPT1 "\ #/bin/bash \n\ echo \"hello\" \n\ " int main () { cout <<system(SHELLSCRIPT1); return 0; } Unfortunately for there are problems for: 1d arrays:... (10 Replies)
Discussion started by: frad
10 Replies

3. Shell Programming and Scripting

Concatenating strings and run it in bash

Hi, all, I tried to write a simple shell script as follow: #!/bin/bash # What want to do in bash is following # : pcd_viewer cloud_cluster_0.pcd cloud_cluster_1.pcd cloud_cluster_2.pcd cloud_cluster_3.pcd cloud_cluster_4.pcd STR = "pcd_viewer" for i in `seq 0 4` do STR... (1 Reply)
Discussion started by: bedeK
1 Replies

4. Shell Programming and Scripting

Problem while concatenating variables in shell script

Hi folks, I am facing problem when I concat variables with the string. Value for 'JDBC_CLASSES' variable looks malformed (/classes12.zip2.0KAGES) But, my expected result for 'JDBC_CLASSES' is /opt/API-R111/PACKAGES/jdbc/ORACLE9.2.0/classes12.zip Am I missing anything here? My... (10 Replies)
Discussion started by: Adhil
10 Replies

5. Shell Programming and Scripting

bash -- concatenating values from variables

Hi This is a simple one but I got a lost in translation when doing. What I want to do, given both variables in the example below, to get one value at the time from both variables, for example: 1:a 2:b etc... I need to get this in bash scripting code: varas="1 2 3 4" varbs="a b c d"... (4 Replies)
Discussion started by: ranmanh
4 Replies

6. Shell Programming and Scripting

Concatenating lines in bash

Hi, I'm attempting to join two lines in a file which are separated by a line break. The file contents are shown below: event_id=0 id=0_20100505210853 IFOconfig=HLV template=TaylorF2 Nlive=1000.0 Nruns=1.0 NIFO=3... (7 Replies)
Discussion started by: Supersymmetric
7 Replies

7. Red Hat

Concatenating variables

Hi all, I'm trying to do a very simple script, as you can see as follow: #!/bin/bash #Valorizzazione Token presenti nel file di properties var_path_weblogic="`cat weblogic.properties | grep "dir_wl" | /usr/xpg4/bin/awk '{print $3}'`" var_ip_address="`cat... (5 Replies)
Discussion started by: idro
5 Replies

8. Shell Programming and Scripting

Concatenating Different # of Variables

Hi, I'm quite new at unix and was wondering if anyone could help me with this. I have 2 arrays: eg. STAT=online, STAT=offline, STAT=online WWN=xxxx1, WWN=xxxx2, WWN=xxxx3 I got these information from a script using fcinfo hba-port that runs through a loop. Now, I want to store... (2 Replies)
Discussion started by: jake_won
2 Replies

9. Shell Programming and Scripting

Bash variables

Ummm can anybody help me with this one? Its prob quite simple. I bascially have a file name say J1x2x3x7.dat Im using the file name as a variable in a bash script. Want I want to do is extract most of the file name and make it a new variable expect with say one of the number now a... (2 Replies)
Discussion started by: RichieFondel
2 Replies

10. Shell Programming and Scripting

Concatenating Variables

FILE_DATE=$(date +"%Y%m%d_%H%M")_ FILE_PREFIX=${FILE_DATE} echo $FILE_PREFIX JS_LOG_DIR="E:\DecisionStream Jobs\Invoice Balance Fact Jobs" echo $JS_LOG_DIR --This is where the problem surfaces. The last line of this script does a rsh to an NT machine and one of the parameters is the... (2 Replies)
Discussion started by: photh
2 Replies
Login or Register to Ask a Question