我需要删除“|”之前的所有数字象征。我对上一个问题尝试了一些建议(删除每行“/”之前的所有内容)但对我不起作用。例如:
113|gm1.1_g
115|gm1.3_g
350400|fgenesh1_kg.28251_#_1_#_remain_c2214
那么我想要:
gm1.1_g
gm1.3_g
fgenesh1_kg.28251_#_1_#_remain_c2214
谢谢
答案1
表示“| 之前的所有数字”的正则表达式(在行开始处)是:
^[0-9]*|
与 sed 一起使用:
$ echo "113|gm1.1_g" | sed 's/^[0-9]*|//'
gm1.1_g
awk:
$ echo "113|gm1.1_g" | awk 'sub(/^[0-9]*\|/,"")'
gm1.1_g
壳:
$ a="113|gm1.1_g"; r='^[0-9]*\|(.*)$'; [[ $a =~ $r ]]; echo "${BASH_REMATCH[1]}"