2017-05-28 115 views
-1

我有一個文本文件格式化,像這樣。而且我在使用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 

將刪除後面的一切|

回答

0

如果你只需要random ip,那麼你可以通過awk

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

您需要設置字段分隔符 –

+0

謝謝。我誤解了這個問題,並認爲他需要第二個領域,因此沒有分隔符。糾正。 – Utsav

0

這樣做只是使用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]'' –

0

使用Perl腳本,這是可以解決的,

use strict; 
use warnings; 

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

這將給你所需的輸出,

192.168.178.65 

192.168.178.93