2

特定の文字列と一致するファイルの最初の N 行のみを調べてチェックできる bash スクリプトを作成しようとしています。ファイル全体をチェックする簡単なコマンドを書くことはできますが、N より大きい行に含まれる情報は正確ではない可能性があります。

これが私の現在の実装です

find . -exec egrep -H -m 1 -l "\<$month/$day/$year\>" {} \;

最初に head 関数を使用してファイルをトリミングすることを考えていましたが、これは機能していないようです。助言がありますか?前もって感謝します

4

2 に答える 2

1

Nこれにより、最初の行のパターンに一致するファイルが表示されます

find . -type f | xargs egrep -H -m 1 -n "\<$month/$day/$year\>" | awk -F : '$2 <= N { print $1; }'

egrepファイル内で最初に出現するものを検索し、行番号を追加します。次に、行番号が(ここに番号を挿入)awk以下のすべての行を検索し、ファイル名を出力します。N

于 2013-02-03T02:49:15.907 に答える
0

たぶん、このように

find -type f | xargs head -N | egrep -H -m 1 -l "\<$month/$day/$year\>"

は行N数です。

于 2013-02-03T01:55:23.167 に答える