web-dev-qa-db-ja.com

引用符の間のgrepサブストリング

次のような文字列があるとします。

title="2010-09-11 11:22:45Z"

日付自体をどのようにgrepし、quotes/title/Zを無視できますか?

ファイルには次のような文字列を含めることができます。

randomstring
title="2010-09-11 11:22:45Z"
title="disregard me"

したがって、単一のgrepコマンドを使用してgrepタイムスタンプのみを取得したいと思います。

7
polym

GNU grep、 できるよ:

$ echo 'title="2010-09-11 11:22:45Z"' | grep -oP 'title="\K[^"]+'
2010-09-11 11:22:45Z
13
cuonglm
grep -oP '[0-9-]{10} [0-9:]{8}' filename
4
Cyrus

これは、GNU grepのバージョンでのみ機能します。

<file.html grep -oP "(?<=title\=\")\d+-\d+-\d+"

Regex101の例 ここ

入力がこの形式のみの場合、以下のコマンドで問題を簡単に解決できます

echo "title=\"2010-09-11 11:22:45Z\"| cut -d '"' -f2 
3
Jignesh Patel