好的,所以我有一個文本文件,像這樣格式化,它有幾行記錄。使用grep處理文本文件
EXAMPLE1:EXAMPLE2:EXAMPLE3
EXAMPLE1:EXAMPLE2:EXAMPLE3
EXAMPLE1:EXAMPLE2:EXAMPLE3
我想用grep來改變它看起來像這樣
EXAMPLE2:EXAMPLE3
基本上我要拿出第一部分前:
如果有人能告訴我如何做到這一點,將不勝感激。
好的,所以我有一個文本文件,像這樣格式化,它有幾行記錄。使用grep處理文本文件
EXAMPLE1:EXAMPLE2:EXAMPLE3
EXAMPLE1:EXAMPLE2:EXAMPLE3
EXAMPLE1:EXAMPLE2:EXAMPLE3
我想用grep來改變它看起來像這樣
EXAMPLE2:EXAMPLE3
基本上我要拿出第一部分前:
如果有人能告訴我如何做到這一點,將不勝感激。
您可以使用-o
標誌來選擇與grep
中的正則表達式匹配的輸入部分。
例
$ grep -o "[^:]*:[^:]*$" input
EXAMPLE2:EXAMPLE3
EXAMPLE2:EXAMPLE3
EXAMPLE2:EXAMPLE3
可以使用cut
工具來過濾掉給出的分隔符列。
在這個例子中,分隔符是:
,你想每列開始與第二:
$ cut -d: -f2- < input.txt
另一種方式來做到這一點。希望這可以幫助。
awk -F":" '{printf "%s:%s\n" ,$1,$2}' file.txt
輸出
EXAMPLE1:EXAMPLE2
EXAMPLE1:EXAMPLE2
EXAMPLE1:EXAMPLE2
這就是:
cut -d':' -f2,3 filename
輸出:
EXAMPLE2:EXAMPLE3
EXAMPLE2:EXAMPLE3
EXAMPLE2:EXAMPLE3
這與博格森4小時前給出的答案有何不同? – andlrc
【如何grep和替換(HTTP的可能重複://計算器.com/questions/15402770/how-to-grep-and-replace) – tripleee
你想要嗎?取出所有的第一個字段,或僅當它在行首時包含「EXAMPLE1」。在這種情況下,你可以使用像'sed's/^ EXAMPLE1://'textfile'。 –