特定の時間(含む)以降にファイル内のすべての項目を印刷します。

特定の時間(含む)以降にファイル内のすべての項目を印刷します。

私のファイルの日付形式は次のとおりです[1/24/21 9:19:20:183 MYT]

この瞬間からファイルの終わりまでタイムスタンプがついたすべての項目を印刷したいと思います。これを行うにはどうすればよいですかsed

ベストアンサー1

日付のみを印刷しますか、日付を含む行全体を印刷しますか?

行全体を印刷するにはを使用しgrep '\[1/24/21 9:19:20:183 MYT\]' fileますが、あえてこだわる場合はsedを使用して行うこともできますsed -n '/\[1\/24\/21 9:19:20:183 MYT\]/p' file

grep -F編集:以下の最初の説明では、freddyユーザーが提案したようにバックスラッシュを使用して見苦しいものを避けることができます。

この-nオプションを使用すると、プログラムが明示的に印刷している場合にのみ行が表示されますsed。このpコマンドはその行を明示的に印刷します。

日付だけを印刷するのもgrepより良い解決策です。-oorオプションを追加するだけです--only-matching。それも可能でしょうが、sed私よりも多くのスキルが必要です。

編集:OPには実際に異なる要件があり、質問を修正しました。行の範囲を指定できますsed。 「[1/24/21 9:19:20:183 MYT]を含む行から最後まで」と書かれています/\[1\/24\/21 9:19:20:183 MYT\]/,$。ドル記号は最後の行を表します。だから:

sed -n '/\[1\/24\/21 9:19:20:183 MYT\]/,$p' file

おすすめ記事