#TIL #bash 20190131064326_abcdefghijk.exs에서 숫자를 추출하는 방법

$ filename=20190131064326_abcdefghijk.exs
$ echo `expr match "$filename" '\([0-9]*\)'`
20190131064326

숫자_문자열.exs 형식에서 _ 문자 앞에 숫자들만 추출해야 한다. expr match 명령어를 사용해 정규식 매칭을 시도했다.

mac에서 동작을 안 한다. : 문자를 사용하는 거로 바꿔야 한다.

$ echo "$filename" | cut -d'_' -f 1
20190131064326

그러고 보니 구분 문자(delimiter)가 명확하다. _ 문자를 구분 문자로 사용하면 된다. 괜히 어렵게 풀었네. -d 옵션으로 구분 문자를 정의하고 -f 1 옵션으로 나눠진 필드 중 첫 번째 필드를 리턴하게 했다.

Feedback plz <3 @ohyecloudy, ohyecloudy@gmail.com


|