Search code examples
linuxunixsed

How to merge every three lines into one line from the command line?


We have text file in below format. We need to merge three lines into singles. I tried some Unix command but it is not giving fruitful result.

sed -n '/TitanBalance/{
N
s/\n/ /p
}' Titaninput.txt

Text content:

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101090593</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>6666666666666</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100007893</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>88888888888888</ns:ID></ns:DocumentID><ns:LineNumber>3</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100679537</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>100</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100663093</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>19</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000000</ns:ID></ns:DocumentID><ns:LineNumber>2</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394699</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>5555555555555</ns:ID></ns:DocumentID><ns:LineNumber>5</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process>
<suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394700</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>111111111111111</ns:ID></ns:DocumentID><ns:LineNumber>6</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance>
</DataArea></TitanBalance>

My output should come in one single line as below:

<TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101090593</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>6666666666666</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>

Solution

  • sed is great for doing s/old/new on individual lines but for anything more than that just use awk for clarity, simplicity, robustness, efficiency, maintainability, adaptability, portability, etc.

    I think this might be what you're trying to do, using any awk and assuming you do have a blank line between each block of 3 lines as shown in the sample input in your question:

    $ awk -v RS= -F'\n' -v OFS= '{$1=$1} 1' Titaninput.txt
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101090593</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>6666666666666</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100007893</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>88888888888888</ns:ID></ns:DocumentID><ns:LineNumber>3</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100679537</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>100</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100663093</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>19</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000000</ns:ID></ns:DocumentID><ns:LineNumber>2</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394699</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>5555555555555</ns:ID></ns:DocumentID><ns:LineNumber>5</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394700</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>111111111111111</ns:ID></ns:DocumentID><ns:LineNumber>6</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    

    In the above awk command, -v RS= -F'\n' together tell awk to read multi-line records where records are separated by empty lines, and split each record into fields at newlines, then -v OFS= tells awk to use nothing when separating fields for output and {$1=$1} tells awk to reconstruct the current record, replacing all FSs (\ns) with OFSs (nothing). Then 1 is shorhand for {print} to print the current record.

    Read the awk man page or the gawk manual for more info:

    Alternatively the above can be implemented with just paste:

    $ paste -d '\0' - - - - < Titaninput.txt
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101090593</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>6666666666666</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100007893</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>1</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>88888888888888</ns:ID></ns:DocumentID><ns:LineNumber>3</ns:LineNumber></ns:SalesOrderReference><companycode>1488</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100679537</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>100</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000</ns:ID></ns:DocumentID><ns:LineNumber>1</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000100663093</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>19</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>00000000000000</ns:ID></ns:DocumentID><ns:LineNumber>2</ns:LineNumber></ns:SalesOrderReference><companycode>1484</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394699</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>5555555555555</ns:ID></ns:DocumentID><ns:LineNumber>5</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    <TitanBalance releaseID="9999.999" languageCode="en" xmlns="www.titan.com" xmlns:ns="www.titan.org"><ns:ApplicationArea><ns:Sender><ns:LogicalID>ATG</ns:LogicalID><ns:ComponentID>0.0.1.1</ns:ComponentID></ns:Sender><ns:CreationDateTime>2024-05-16T09:26:02.378+02:00</ns:CreationDateTime><ns:DAD>556666660000</ns:DAD></ns:ApplicationArea><DataArea><ns:Process><ns:ActionList><ns:actionFile expressionLanguage="text" actionCode="Modified">supplier</ns:actionFile></ns:ActionList></ns:Process><suppementaryBalance><ProductItem><ns:ItemID><ns:ID>000000000101394700</ns:ID></ns:ItemID><ns:UOMCode>EA</ns:UOMCode></ProductItem><ns:supplierdQuantity>2</ns:supplierdQuantity><ns:SalesOrderReference><ns:DocumentID><ns:ID>111111111111111</ns:ID></ns:DocumentID><ns:LineNumber>6</ns:LineNumber></ns:SalesOrderReference><companycode>1422</companycode><ns:Type>Standard</ns:Type><FulfilmentSourceType>new arrival</FulfilmentSourceType></suppementaryBalance></DataArea></TitanBalance>
    

    or, if you don't really have a blank line between each block of 3 input lines, then:

    $ seq 9 | awk '{printf "%s%s", $0, (NR%3 ? "" : ORS)}'
    123
    456
    789
    

    which can be reduced to:

    $ seq 9 | paste -d '\0' - - -
    123
    456
    789
    

    Thanks to @triplee for pointing out that while paste -d '', as I originally had, would work in GNU paste, paste -d '\0' is necessary for portability to all POSIX-compliant awks, including the BSD one on MacOS, and means no separator will be used (not a NUL char will be used) between the concatenated lines, see the POSIX paste spec.