전체 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.txt
addthat.txt
.htaccess
답변1
찾고 있는 구문이 가깝습니다.
grep -q -e "$(cat addthat.txt)" .htaccess
답변2
누군가 여기에 이 답변을 썼으나 지금은 삭제되었습니다. 그것은 매력처럼 작동합니다.
grep -qxf /home/tstepien/Desktop/code/testing/addthat.txt .htaccess
-q: 자동 모드(종료 코드만 해당)
-f 제공된 파일로 검색
-x 전체 줄 검색