输入文件:文件名=' sample1.txt'
狮子是好朋友(Host = lion)(Port = animal),老虎是 (主机=虎)(端口=一个)
汉堡是一种食物(Host = Burger)(Port = Food)
我有上面的txt文件中显示的数据。我想从txt文件中收集每行中的主机和端口,并将它们放在新的txt文件中
必需的文件:
使用的代码直到nw:
cat sample1.txt | perl -ne 'print "$1=$2\n" if(/Host=([\w.]*.'-'*[\w.]*.).*Port=(\d+)/)' > sample2.txt
sed 's|[()]||g' sample2.txt > sample3.txt
获得的输出:
没有得到老虎和一个:
问题:我无法将主机和端口放在同一行中,然后再出现一次..在某些线路上它只有一个主机和端口值...在那里的另一行是不止一个主机和端口值..请帮我解决这个问题..谢谢你.. :)
答案 0 :(得分:0)
如果您希望按照外观顺序排列所有条目,可以使用以下内容:
perl -nle 's{Host=([^)]*).*?Port=([^)]*)}{print "$1:$2"}ge' < sample1.txt > sample3.txt