データは次のとおりです。
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