grep 出力形式 [閉じる]

grep 出力形式 [閉じる]

私のハードドライブにウェブサイトがあり、HTMLファイルでキーワードを見つけて、見つかった各コンテンツを新しい行に一覧表示するHTMLファイルとして出力する必要があります。現在、以下の行を使用していますが、出力は理想的ではありません。

grep -lUirn  -C 1  "Word1" *  >> report.html

上記の行は以下を生成します。

      file1.html file2.html etc.html

ただし、ファイルに出力するには必要です。

      file1.html 

      file2.html 

      etc.html

より理想的には、次のように出力されます。

      http://relitivePath/file1.html 

      http://relitivePath/file2.html 

      http://relitivePath/etc.html

答え1

GNUを使用する場合、オプション(すべてのファイルをバイナリとして扱う)は、MS-DOSまたはWindowsで実行されていない限り効果がなく、(一致する行の行番号を出力する)は(一致するgrep行の名前のみを出力)と組み合わせても効果はありません。ファイル)))。同様に(一致の周りの1行のコンテキスト)は効果がありません。-U-n-l-C 1-l

一致するファイルはすでに別々の行に報告されていますが、なぜ1行に入れたのかはよくわかりません。

grep -lr -Fiw 'Word1' .

あなたの要件を満たす必要があります。-F正規表現一致ではなく文字列比較を実行し、部分-w文字列の代わりに完全な単語一致を追加しました。

出力をURIに変換するには:

grep -lr -Fiw 'Word1' . | sed 's,^,http://,'

これは、http://各行の先頭に挿入を使用しますsed

これは明らかに、ファイル名に改行文字が含まれていないと仮定しています。これにより、sedファイル名の改行で区切られた各部分の前に文字列が挿入されます。

関連情報