2014-08-29 115 views
0

比如我有一個文本消息:如何在每行的末尾添加文本,包含來自sed或awk行的文本?

before1/endpoint-1 
before2/endpoint-2 
before3/endpoint-3 

我想下一個輸出:

before1/endpoint-1=somethingelse/endpoint-1 
before2/endpoint-2=somethingelse/endpoint-2 
before3/endpoint-3=somethingelse/endpoint-3 

所以我想在每行的末尾添加=somethingelse/然後得到來自同一端點在它後面。

我知道我可以添加部分=somethingelse/如下:

sed -i 's/$/=somethingelse\//' textfile 

但HOWTO添加samepart的後端點?

回答

4

通過戰略經濟對話

$ sed 's~\([^\/]*\)$~\1=somethingelse/\1~' file 
before1/endpoint-1=somethingelse/endpoint-1 
before2/endpoint-2=somethingelse/endpoint-2 
before3/endpoint-3=somethingelse/endpoint-3 
6

有很多方法可以實現自己的目標,例如AWK一行代碼:

awk -F'/' '$0=$0"=somethingelse" FS $2' 

或sed的:

sed 's#/.*#&=somethingelse&#' 
+2

喜歡你的sed,快捷,高效 – NeronLeVelu 2014-08-29 08:46:14

+1

@NeronLeVelu有時貪婪是很方便的.. :) – Kent 2014-08-29 08:54:10

相關問題