문자열에서 특정 데이터 찾기

문자열에서 특정 데이터 찾기

데이터는 다음과 같습니다.

Valid from: Fri Nov 24 12:11:28 EST 2017 until: Sun Nov 24 12:11:28 EST 2019
Valid from: Fri Feb 24 13:21:19 EST 2017 until: Thu Feb 24 13:31:19 EST 2022
Valid from: Tue Dec 20 12:01:19 EST 2016 until: Fri Dec 20 12:11:17 EST 2041

"until:"이라는 단어 뒤에 쓰여진 데이터만 추출하고 싶습니다.

예를 들어 나는 Sun Nov 24 12:11:28 EST 2019.

답변1

또한 시도

awk '{sub (/^.*until: /, "")} 1' file
Sun Nov 24 12:11:28 EST 2019
Thu Feb 24 13:31:19 EST 2022
Fri Dec 20 12:11:17 EST 2041

더 짧다

sed 's/^.*until: //' file
Sun Nov 24 12:11:28 EST 2019
Thu Feb 24 13:31:19 EST 2022
Fri Dec 20 12:11:17 EST 2041

답변2

GNU grep 사용

echo "$string" | grep -oP 'until: \K.*'

"until:"이라는 단어를 일치시킨 다음 \K방금 일치한 모든 항목을 잊어버리고 .*그 이후의 모든 항목을 일치시킬 수 있습니다.

답변3

awk구분 기호를 로 설정 하면 "until:"해당 텍스트가 문자열에 있을 때 후속 문자열을 가져올 수 있습니다.awk -F'until:' '{print $2}'

echo "Valid from: Fri Nov 24 12:11:28 EST 2017 until: Sun Nov 24 12:11:28 EST 2019" | awk -F'until:' '{print $2}'

답변4

형식이 항상 동일하다면 다음을 시도해 볼 수도 있습니다.

cut -d':' -f 5- /path-to-file 

관련 정보