删除部分行
我有一个文本文件格式化,像这样。而且我在使用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
这样做只是使用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}'
您好,谢谢,但只有|连接被删除,但我需要删除|连接后面的所有内容。如果你能帮助我,这将是很好的。 – ashold7
'cut'删除所有内容,并生成问题中提供的示例输出。不知道我理解你的评论。 –
您也可以使用'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
您需要设置字段分隔符 –
谢谢。我误解了这个问题,并认为他需要第二个领域,因此没有分隔符。纠正。 – Utsav