最初の行が長いファイルを見つける方法は?

最初の行が長いファイルを見つける方法は?

現在サーバーに問題があります。複数のウェブサイトをホストしているユーザーがハッキングされ、彼のPHPファイルの一部が修正されました。今、感染したファイルのリストを取得したいと彼が全体の混乱を治療したことを確認したいと思います。

感染したファイルの共通点は、最初の行が非常に長いことです。だから私はサーバー上の最小長が1000文字のすべてのPHPファイルを見つけたいと思います。

さて、「find」を使用してすべてのPHPファイルを見つけることができ、「head -n 1」を使用して最初の行を取得し、「wc -m」を使用して文字数を計算できます。

しかし、どのように組み合わせることができますか?

ベストアンサー1

find以下を使用してこれを実行できますawk

find . -type f -name '*.php' -size +1000c -exec awk '
    FNR > 1 {nextfile}
    length >= 1000 {print FILENAME}' {} +

スクリプトawkは、各ファイルの最初の行の後にある次のファイルに移動します。現在の行の長さが1000文字を超えると、現在のファイルのファイル名が印刷されます。

おすすめ記事