2016-06-11 133 views
-1

好的,所以我有一個文本文件,像這樣格式化,它有幾行記錄。使用grep處理文本文件

EXAMPLE1:EXAMPLE2:EXAMPLE3 
EXAMPLE1:EXAMPLE2:EXAMPLE3 
EXAMPLE1:EXAMPLE2:EXAMPLE3 

我想用grep來改變它看起來像這樣

EXAMPLE2:EXAMPLE3 

基本上我要拿出第一部分前:

如果有人能告訴我如何做到這一點,將不勝感激。

+0

【如何grep和替換(HTTP的可能重複://計算器.com/questions/15402770/how-to-grep-and-replace) – tripleee

+0

你想要嗎?取出所有的第一個字段,或僅當它在行首時包含「EXAMPLE1」。在這種情況下,你可以使用像'sed's/^ EXAMPLE1://'textfile'。 –

回答

1

您可以使用-o標誌來選擇與grep中的正則表達式匹配的輸入部分。

$ grep -o "[^:]*:[^:]*$" input 
EXAMPLE2:EXAMPLE3 
EXAMPLE2:EXAMPLE3 
EXAMPLE2:EXAMPLE3 
2

可以使用cut工具來過濾掉給出的分隔符​​列。

在這個例子中,分隔符是:,你想每列開始與第二:

$ cut -d: -f2- < input.txt 
0

另一種方式來做到這一點。希望這可以幫助。

awk -F":" '{printf "%s:%s\n" ,$1,$2}' file.txt 

輸出

EXAMPLE1:EXAMPLE2 
EXAMPLE1:EXAMPLE2 
EXAMPLE1:EXAMPLE2 
-1

這就是:

cut -d':' -f2,3 filename 

輸出:

EXAMPLE2:EXAMPLE3 
EXAMPLE2:EXAMPLE3 
EXAMPLE2:EXAMPLE3 
+0

這與博格森4小時前給出的答案有何不同? – andlrc