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
awk
sed の代わりに使用:
awk 'index($0,"golf/TierTwo/2013-11")>0 { print $7 }' output.log
これにより、各行の文字列が検索され、インデックスが見つかると7番目の単語が印刷されます。