전체 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 -so if문을 사용한 후 다시 실행하면 "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 전체 줄 검색

관련 정보