Question

How can I combine these lines (NOTE: this is just an excerpt from a much larger file):

interface GigabitEthernet0/0
 no ip proxy-arp
interface GigabitEthernet0/0.202
 no ip proxy-arp
interface GigabitEthernet0/0.358
 no ip proxy-arp
interface FastEthernet0/0/1.26
 no ip proxy-arp
interface GigabitEthernet0/0
 no ip proxy-arp
interface GigabitEthernet0/0.202
 no ip proxy-arp
interface GigabitEthernet0/0.358
 no ip proxy-arp
interface FastEthernet0/0/1.26
 no ip proxy-arp
interface Loopback0
 no ip proxy-arp
interface Loopback1
 no ip proxy-arp
interface Loopback26
 no ip proxy-arp
interface GigabitEthernet0/0/0
 no ip proxy-arp

so that they resemble this:

interface GigabitEthernet0/0 | no ip proxy-arp
interface GigabitEthernet0/0.202 | no ip proxy-arp
interface GigabitEthernet0/0.358 | no ip proxy-arp
interface FastEthernet0/0/1.26 | no ip proxy-arp
interface GigabitEthernet0/0 | no ip proxy-arp
interface GigabitEthernet0/0.202 | no ip proxy-arp
interface GigabitEthernet0/0.358 | no ip proxy-arp
interface FastEthernet0/0/1.26 | no ip proxy-arp
interface Loopback0 | no ip proxy-arp
interface Loopback1 | no ip proxy-arp
interface Loopback26 | no ip proxy-arp
interface GigabitEthernet0/0/0 | no ip proxy-arp

I've tried a few different solutions that I have found online, but none of them seem to work correctly for my situation

Was it helpful?

Solution 2

Try this sed one-liner:

sed 'N;s/\n/ | /;s/\r//g' file.txt

OTHER TIPS

paste can do it:

paste -d '|' - - < file
 awk '{printf "%s%s",$0,(NR%2?"|":"\n")}' file
while IFS= read line1 && IFS= read line2; do
    printf "%s | %s\n" "$line1" "$line2"
done < file.txt
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top