데이터는 다음과 같습니다.
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