我不确定我是否可以用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请在这里发布...