سؤال

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

هل كانت مفيدة؟

المحلول 2

Try this sed one-liner:

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

نصائح أخرى

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top