이런 프로그램을 실행하는 쉘 스크립트가 있습니다
sudo swatchdog -c /home/pi/.swatchdogrc -t /var/log/snort/alert >> /home/pi/swatch/output/a.txt
다음과 같은 a.txt 출력이 있습니다 ...
*** swatchdog version 3.2.4 (pid:2139) started at Sun 05 Jan 2020 05:16:17 PM +07
192.168.2.198
57312
192.168.2.238
22
192.168.2.198
57314
192.168.2.238
*** swatchdog version 3.2.4 (pid:2139) started at Sun 05 Jan 2020 05:16:17 PM +07
이 문장은 나올 때마다 삭제하고 싶어요. 쉘스크립트를 작성하면 어떻게 할 수 있나요? 추신: 나도 시도했습니다
cd swatch/output $ sudo swatchdog -c /home/pi/.swatcgdogrc -t /var/log/snort/alert | cut -c 82- > a.txt
그러나 아무것도 인쇄되지 않습니다.
감사해요.
답변1
grep
grep
with 옵션을 사용하면 -v
지정된 키워드가 포함된 행을 제외하고 입력을 출력할 수 있습니다. 매뉴얼 페이지에서:
-v, --invert-match 일치하지 않는 행 선택
grep -v "keyword/pattern" file
# Pipeline
command | grep -v "keyword/pattern" > output
따라서 스크립트는 다음과 같습니다.
sudo swatchdog -c /home/pi/.swatchdogrc -t /var/log/snort/alert | grep -v "swatchdog" >> /path/to/output.txt
앗
다음을 사용하여 동일한 결과를 얻을 수도 있습니다.awk
awk '! /keyword/ {print}' file
# Pipeline
command | awk '! /keyword/ {print} > output
sudo swatchdog -c /home/pi/.swatchdogrc -t /var/log/snort/alert | awk '! /swatchdog/ {print}' >> /path/to/output.txt