如何删除特定符号之前的所有内容?

如何删除特定符号之前的所有内容?

我需要删除“|”之前的所有数字象征。我对上一个问题尝试了一些建议(删除每行“/”之前的所有内容)但对我不起作用。例如:

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]}"

相关内容