Нужно напечатать все шаблоны после третьего двоеточия.

Команда arpspoofне предназначена для уничтожения соединения.

Обычно он используется для передачи всего трафика для компьютера-жертвы через ваш собственный, чтобы вы могли прослушивать трафик.

Для этого он должен посылать непрерывный поток фальшивых ARP-запросов, чтобы обманным путем заставить другие машины в локальной сети общаться с вашей собственной машиной, а не с реальной целью.

Вы можете проверить man arpspoof .

0
09.12.2019, 15:45
3 ответа

Сsed:

sed 's/[^:]*:[^:]*:[^:]*: //' file

Или с расширенными регулярными выражениями (ERE):

sed -E 's/([^:]*:){3} //' file

Заменить

  • любые не-:символы, за которыми следует три раза:()
  • с последующим пробелом

с пустой строкой.

Выход:

sometest: some : text server:::test
readtest: some
writetest: some ::: text
2
28.01.2020, 02:17

Вы можете попробовать это с помощью sed, если мы уверены в наличии круглых скобок:

sed 's/^.*): //' file

Выход:

sometest: some : text server:::test
readtest: some
writetest: some ::: text

Или с прорезью:

cut -d':' -f4- file | sed 's/^ //'
1
28.01.2020, 02:17

Это интересный вопрос, так как вы можете сделать это разными способами. Некоторые из них более или менее устойчивы перед лицом или неожиданным входом. Вы хотите явно сопоставить ключевые слова sometest, readtest, writetest для надежности. Или просто сопоставьте любое третье двоеточие. Используйте команду cut или sed, или awk, или perl, или...

Вопрос можно прояснить, указав на двоеточия в дате/времени, которые следует игнорировать.

# after 3rd colon (but forgetting to strip the space after it)
sed s/[^:]*:[^:]*:[^:]*://

# this cut command does the same as that sed
cut -d: -f 4-

# A cut command delimiting on space might be better actually 
#  assuming two words always to be stripped "Test (something)" 
# this cut command leaves out the whitespace as expected 
cut -d" " -f6-

# after 3rd colon (strip leading space):
sed "s/[^:]*:[^:]*:[^:]*: *//"

# after 3rd colon (strip leading WHITEspace):
sed "s/[^:]*:[^:]*:[^:]*:\s*//"

# cut all those things explicitly before "sometest,readtest,writetest"
sed -E 's/.*(some|read|write)(test:)/\1\2/'

# exactly the same command works in perl
perl -pe 's/.*(some|read|write)(test:)/\1\2/'

Ожидаемый результат выглядел так, как будто в нем были неправильные ведущие ключевые слова.

sometest: some : text server:::test
readtest: some
writetest: some ::: text

Наконец, в вашем примере и в файлах журналов, как правило, иногда вы хотите удалить метку времени, например. команда cut, чтобы сохранить бит «Проверить (что-то )»:

# A cut command to just strip the timestamp and leave in the "Test (something)" 
cut -d" " -f4-
1
28.01.2020, 02:17

Теги

Похожие вопросы