2013-02-11 28 views
0

我輸入看起來像這樣由製表符分隔):如何重複的模式並用一個「標籤」與修改SED

Yadda yaddabla   blubb_1234   extremlylongtext, with commata 
awesomo sappa    dwarf_775   extremlylongbutdifferenttext, with commata 

輸出應該是:

Yadda yaddabla S23   blubb_1234  1234  extremlylongtext, with commata 
awesomo sappa y5   dwarf_775  775  extremlylongbutdifferenttext, with commata 

所以我想在與選項卡分開的「_」字符後重復僅數字。有什麼建議麼? :)

回答

1
sed 's/_\([[:digit:]]\{1,\}\)/_\1\t\1/g' 

我已經用\t顯示了這一點,表明輸出中有一個選項卡。如果你不使用GNU sed,你可能需要用一個文字標籤替換它。

+0

@邁克爾·巴伯:謝謝,這個完美的作品! – 2013-02-12 12:47:45

0

的標籤awk的溶液中分離文件

awk -F"\t" 'BEGIN{OFS="\t";}{$2 = gensub(/_([0-9]+)/,"_\\1\t\\1","g",$2);}1' temp.txt 
+0

我想你會想把'OFS'設置爲一個標籤。 – 2013-02-12 05:10:58

+0

@ MichaelJ.Barber。你是對的。我忘了那個。現在修復 – user2134226 2013-02-12 05:47:41