2014-04-15 98 views
1

我怎样才能将这些线(注意:这仅仅是从一个更大的文件的摘录):我怎么能结合这些线路

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 

,让他们像这样:

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 

我试过,我在网上发现了一些不同的解决方案,但没有人似乎为我的情况

回答

3

正常工作试试这个sed的一行代码:

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

如果你特别希望前'没有ip'删除空间(S),改变''N; S/\ n/| /'到'N; s/\ n */| /'' – anishsane

+0

你好,谢谢你的帮助。我运行这个命令时得到以下内容:|没有ip proxy-arpEthernet0/0(所有的行都是这种格式) – lacrosse1991

+0

您已经将您的测试文件保存为CRLF格式...检查编辑。 – anishsane

0
while IFS= read line1 && IFS= read line2; do 
    printf "%s | %s\n" "$line1" "$line2" 
done < file.txt 
2
awk '{printf "%s%s",$0,(NR%2?"|":"\n")}' file 
+0

你好,谢谢你的帮助。当我运行这个命令时,我得到了以下内容: |没有ip proxy-arpEthernet0/0 (所有的行都是那种格式) – lacrosse1991

+0

@ lacrosse1991我用你的例子运行命令,它给出了你的问题相同的输出.... – Kent

+0

你好,anishsane提到该文件是CRLF格式,现在有效,谢谢! – lacrosse1991

3

膏可以做到这一点:

paste -d '|' - - < file