小编hio*_*iob的帖子

sed:保持模式和重新排列

我不确定我是否可以用sed完全做到这一点:

我想重新排列这样的线条

GF:001,GF:00012,GF:01223<TAB>XXR
GF:001,GF:00012,GF:01223,GF:0666<TAB>XXXR3
Run Code Online (Sandbox Code Playgroud)

GF:001<TAB>XXR
GF:00012<TAB>XXR
GF:01223<TAB>XXR
GF:001<TAB>XXXR3
GF:00012<TAB>XXXR3
GF:01223<TAB>XXXR3
GF:0666<TAB>XXXR3
Run Code Online (Sandbox Code Playgroud)

任何提示?GF:XXXX的基数是GF:XXXX的长度.

我坚持,sed -n ' '/\(XX.*\)$/' { s/,/\t\1\n/ }' input但我不能首先引用最初匹配的模式.有任何想法吗?干杯!

更新:我认为仅使用sed是不可能的.所以我使用perl来做到这一点:

perl -e 'open(IN, "< file");
while (<IN>) {
    @a = split(/\t/);
    @gos = split(/,/, $a[0]);
    foreach (@gos) {
      print $_."\t".$a[1];
    }
close( IN );' > output
Run Code Online (Sandbox Code Playgroud)

但是,如果有人知道解决这个问题的方法,sed请在这里发布...

regex variables awk sed

4
推荐指数
1
解决办法
2073
查看次数

标签 统计

awk ×1

regex ×1

sed ×1

variables ×1