Я ищу, чтобы создать cronjob, который предупредит нас, если определенный каталог отправил определенное количество писем от сканирования файла журнала. Один вкладыш, я использую это:Bash исключает строку из строки, если строка соответствует определенному тексту
awk '$3 ~ /^cwd/{print $3}' /var/log/exim_mainlog | sort | uniq -c | sed "s|^ *||g" | sort -nr | head --lines 5
прежде, чем я дальше, мне нужно, чтобы исключить некоторые места из вывода, например:
50992 cwd=/var/spool/exim
21960 cwd=/home/USER1/public_html/wp-content/cache/object/000000/746
2717 cwd=/etc/csf
2063 cwd=/home/USER2
1072 cwd=/
мне нужно исключить:
1072 cwd=/
2717 cwd=/etc/csf
50992 cwd=/var/spool/exim
Должен ли я добавить файл в txt-файл, а затем использовать SED или есть более простой способ?
'... | grep -v 'thing_to_exclude'' –
... в этом случае это может быть 'egrep -v' cwd = (/ $ |/etc/csf |/var/spool/exim) ''. –
Кроме того, 'sed' на самом деле является редактором ** потока **, а не файловым редактором, - если вы используете его для редактирования файлов на диске, а не для потоков, вы предположительно используете нестандартные расширения, такие как' -i' ; POSIX-стандартный ** файл ** редактор 'ex', а не' sed'. –