特定の行の後にファイル行を探し、それらを処理してそこからデータを取得するスクリプトを使用しています。
ファイル「sample.log」に次のような行がある場合、例で説明しましょう
qwerty asdf foo bar
foo
time: 1:00 PM
foo1 bar1
foo foo fooo copying file abc/def/ghi/foo.txt
bar bar1 bar2 copying file efg/qwe/bar.txt
foo
私のスクリプトは、次の時刻以降にコンテンツを検索する必要があります: 1:00 PM. これらの行を見つけた後、パターン「copying」に一致する行を探し、その行で指定されたパスを取得する必要があります。
この場合、別のファイルに書き込まれる出力は、
abc/def/ghi/foo.txt
efg/qwe/bar.txt
次のコマンドを使用してこれを試しましたが、空の文字列を出力として取得しました。これで私を導いてください
sed -n '/^time: 1:00 PM/{/^(.*)copying file/s/^(.*)copying file //p}' ../../sample.log