sed(または他の代替ソリューション)を使用してハッシュ値を含む文字列の一部を印刷するにはどうすればよいですか?

sed(または他の代替ソリューション)を使用してハッシュ値を含む文字列の一部を印刷するにはどうすればよいですか?

sedを使用して1行の特定の文字列を印刷しようとしています。

最初の問題は、スラッシュを含む文字列を見つけるのが難しいということです。他のスレッドが提供するソリューションのいくつかを試しましたが、成功しませんでした。誰かが私を助けることを願っています。

output.logというファイルがあります。

行の例は次のとおりです。

013-11-08 19:45:52 evtlog.bad PROD/INSE/6004113 2012-11-08 19:04:06 /test11/golf/TierTwo/2013-11/evtlog.log

そのため、sedを使用してこの行に対して次の文字列を印刷したいと思います。

/test11/golf/TierTwo/2013-11/evtlog.log

「golf/TierTwo/2013-11」行で文字列を見つけたいです。

たとえば、次のようにします。

sed 'golf/TierTwo/2013-11' output.log

出力を取得します。

/test11/golf/TierTwo/2013-11/evtlog.log

この目標をどのように達成できますか?

sedの代わりにより良い解決策があれば、それも歓迎されます。私の目標は、スクリプト、bash、またはperlで使用することです。

ベストアンサー1

awksed の代わりに使用:

awk 'index($0,"golf/TierTwo/2013-11")>0 { print $7 }' output.log

これにより、各行の文字列が検索され、インデックスが見つかると7番目の単語が印刷されます。

おすすめ記事