特定のシンボルの前にあるすべてのコンテンツをどのように削除できますか? [コピー]

特定のシンボルの前にあるすべてのコンテンツをどのように削除できますか? [コピー]

「|」前にあるすべての数字記号を削除する必要があります。前の質問で提案したもののいくつかを試してみました(各行の「/」の前のすべての項目を削除します。)しかし私にはうまくいきません。たとえば、

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

奇妙な:

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

関連情報