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