我可以使用哪个sed / awk命令来删除第1列中每个字符串的最后一个数字(并删除分隔符_
)并将其移动到新列(第3列)?
例如,
$ head -3 test1.bed
HLA:HLA00001_A*01:01:01:01_3503 1
HLA:HLA02169_A*01:01:01:02N_3291 1
HLA:HLA14798_A*01:01:01:03_2903 1
应该成为:
$ head -3 test1.bed
HLA:HLA00001_A*01:01:01:01 1 3503
HLA:HLA02169_A*01:01:01:02N 1 3291
HLA:HLA14798_A*01:01:01:03 1 2903
答案 0 :(得分:0)
changedLoc
上面的内容适用于OSX sed和更新的GNU seds,其中-E = Extended Regexps。任何sed:
$ sed -E 's/(.*)_([0-9]+)(.*)/\1\3 \2/' file
HLA:HLA00001_A*01:01:01:01 1 3503
HLA:HLA02169_A*01:01:01:02N 1 3291
HLA:HLA14798_A*01:01:01:03 1 2903
答案 1 :(得分:0)
awk -F'[_ ]' '{print $1"_"$2,$4,$5,$3}' file
HLA:HLA00001_A*01:01:01:01 1 3503
HLA:HLA02169_A*01:01:01:02N 1 3291
HLA:HLA14798_A*01:01:01:03 1 2903