하이픈 뒤에 문자열의 마지막 부분을 가져옵니다


10

하이픈으로 구분 된 문자열의 마지막 부분을 추출하는 간단한 명령 줄이 있습니까? 예, 나는 추출 할 123에서 foo-bar-123.

답변:


23

Bash의 매개 변수 확장을 사용할 수 있습니다 .

string="foo-bar-123" && printf "%s\n" "${string##*-}"
123

Awk와 함께 다른 프로세스를 사용하려는 경우 :

echo "foo-bar-123" | awk -F- '{print $NF}'

또는 Sed를 선호하는 경우 :

echo "foo-bar-123" | sed 's/.*-//'

Glenn Jackman이 제안한 것처럼 더 가벼운 외부 프로세스 는 cut다음과 같습니다.

cut -d- -f3 <<< "$string"

쉘 매개 변수 확장이 가장 좋습니다. 가벼운 외부 도구는 cut다음과 같습니다.cut -d- -f3 <<< "$string"
glenn jackman

1
@glennjackman-re : cut; 실제로 그러나 마지막 필드의 숫자가 알려진 경우에만 (질문이 약간 모호하기 때문에 : 마지막 부분을 추출하는 간단한 명령 행이 있습니까? ... )
don_crissti

2
사실 @don_crissti. 하나 rev <<< "$string" | cut -d- -f1 | rev 있지만, 우리는 param.expansion의 단순함에서 멀어지고 있습니다.
glenn jackman


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.