0

我的输入看起来像这样用制表符分隔):

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

因此,我只想在“_”字符后重复数字,并用制表符分隔。有什么建议么?:)

4

2 回答 2

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

我已经\t在输出中显示了一个指示选项卡。如果您不使用 GNU sed,则可能需要将其替换为文字选项卡。

于 2013-02-11T15:11:58.140 回答
0

用于制表符分隔文件的 awk 解决方案

awk -F"\t" 'BEGIN{OFS="\t";}{$2 = gensub(/_([0-9]+)/,"_\\1\t\\1","g",$2);}1' temp.txt
于 2013-02-12T01:48:05.007 回答