データは次のとおりです。
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:' Wordの後に書き込まれたデータのみを抽出したい。
たとえば、Sun Nov 24 12:11:28 EST 2019
のみを取得する必要があります。
また試してみてください
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
GNU grep
echo "$string" | grep -oP 'until: \K.*'
これは「until:」という単語と一致し、その後\K
一致したばかりのすべてを忘れてから、.*
その後はすべて一致する可能性があります。
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}'
grep -o 'until: [^V]*' file | cut -d ':' -f 2-
フォーマットが常に同じである場合は、次のことも試すことができます。
cut -d':' -f 5- /path-to-file