특정 기호 앞에 있는 모든 내용을 어떻게 삭제할 수 있나요? [복사]

특정 기호 앞에 있는 모든 내용을 어떻게 삭제할 수 있나요? [복사]

"|" 앞에 있는 모든 숫자 기호를 제거해야 합니다. 이전 질문에서 제안한 내용 중 일부를 시도해 보았습니다(각 줄의 "/" 앞의 모든 항목을 삭제합니다.) 하지만 나에게는 작동하지 않습니다. 예를 들어:

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

관련 정보