我是bash脚本的新手。我想分割以下字符串,
chr14:81370042-81371098(+)
进入
chr14 81370042 81371098 +
要么
chr14:81370042-81371098(-)
进入
chr14 81370042 81371098 -
请告诉我如何使用一种适用于两种情况的命令来执行此操作。
我尝试过,,cat a.tsv | tr -s ':' '\t' | sed "s/\t[0-9]+.*[0-9]+/[0-9]+\t[0-9]/g"
它不起作用。
谢谢。
这sed
可能起作用:
sed -E 's/[^-+_[:alnum:]]+/ /g; s/ +$//; s/-(.)/ \1/g' <<< 'chr14:81370042-81371098(+)'
chr14 81370042 81371098 +
要不然:
sed -E 's/[^-+_[:alnum:]]+/ /g; s/ +$//; s/-(.)/ \1/g' <<< 'chr14:81370042-81371098(-)'
chr14 81370042 81371098 -
[^-+_[:alnum:]]+
匹配1个或多个不属于任何字符的-
,+
,_
和字母数字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句