全cat出力を含むファイルのGrep

全cat出力を含むファイルのGrep

cat出力全体を通してファイルをgrepするための短いスクリプト(for ifループ)を検索/作成しようとしました。

私はすでに試しました。

#!/bin/bash
find -name 'xmlrpc.php' -execdir bash -c '
if [ -e ".htaccess" ] ; then
if grep -qxf /home/tstepien/Desktop/code/testing/addthat.txt .htaccess
then
        echo found
else
        (cat /home/tstepien/Desktop/code/testing/addthat.txt && cat .htaccess) > .htaccess.post && mv .htaccess.post .htaccess
fi
fi' {} \;

しかし、それは「grepping」のすべての言葉です。addthat.txt

の例addthat.txt

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} /xmlrpc.php [NC]
RewriteRule .* - [F,L]

.htaccess (スクリプトを使用する前)

==========
here code
==========

.htaccess(script -soifステートメントを使用して再度実行すると、「found」と表示され、内容は再度追加されませんaddthat.txt。)

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} /xmlrpc.php [NC]
RewriteRule .* - [F,L]
==========
here some code
==========

つまり、 にテキストがあれば の内容を に追加し.htaccessないでください。addthat.txtaddthat.txt.htaccess

答え1

探しているフレーズが近いです。

grep -q -e "$(cat addthat.txt)" .htaccess

答え2

誰かがここにこの答えを書いたが、今は削除されました。それは魅力のように動作します。

grep -qxf /home/tstepien/Desktop/code/testing/addthat.txt .htaccess

-q:自動モード(終了コードのみ)

-f 提供されたファイルで検索

-x 全行検索

関連情報