删除部分行

问题描述:

我有一个文本文件格式化,像这样。而且我在使用UNIX删除部分行

例如:

192.168.178.65|connected 2/5/2017 

192.168.178.93|connected 3/5/2017 

...

所以基本上总是这样

(随机IP)|连接(随机日期)

(random ip)| connected(random date)

...

如何删除后面的所有内容|末连接,它会看起来像这样

例如:

192.168.178.65 

192.168.178.93 

所以,我只拥有IP

(随机IP)

(随机IP)

谢谢你的帮助

编辑: 只需使用威廉Pursells答:

cut -d\| -f1 

将删除后面的一切|

如果你只需要random ip,那么你可以通过awk

awk -F"|" '{print $1}' filename 
+0

您需要设置字段分隔符 –

+0

谢谢。我误解了这个问题,并认为他需要第二个领域,因此没有分隔符。纠正。 – Utsav

这样做只是使用cut

cut -d\| -f1 

如:cut -d\| -f1 <input.file> output.file

或者使用awk命令 awk '{print $1}' FS=\| 或在unix中使用sedsed 's/|.*//' 或(不完整和不严格) grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'

+0

您好,谢谢,但只有|连接被删除,但我需要删除|连接后面的所有内容。如果你能帮助我,这将是很好的。 – ashold7

+0

'cut'删除所有内容,并生成问题中提供的示例输出。不知道我理解你的评论。 –

+0

您也可以使用'perl -F'\ |' -anE'say $ F [0]'' –

使用Perl脚本,这是可以解决的,

use strict; 
use warnings; 

while(<>){ 
my @ip= split('|',$_); 
print "$ip[0] \n"; 
} 

这将给你所需的输出,

192.168.178.65 

192.168.178.93