Проверьте полностью, если Вы хотите, но умные взломщики могут оставить легкие к пятну знаки, но скрыть другие умно скрытые бэкдоры... Могло быть невозможно быть уверенным...
Проблема, когда-то поставлена под угрозу, машина (и другие машины, к которым она может получить доступ к), становится ненадежным (поскольку невозможно знать, изменили ли они что-нибудь. Таким образом, необходимо предположить, что они сделали. И если бы они сделали, то они могли бы изменить ОС/ядро, команды, файловую систему, загрузочные секторы, что-либо. Это могло просто действовать "нормальное" и скрыть определенные файлы или папки или сетевые пакеты. Вы не можете доверять никаким командам на машине, к которой получили доступ хакеры.)
Обычно лучшая тактика (и самое быстрое!) "уничтожение с орбиты" подход: отключите ту машину из всех сетей (LAN, и т.д.), скопируйте документы и переустановите целую машину с помощью CD (т.е., чистое и не умеренные с источником). И затем восстановите только документы о нем (никакой exe, никакой dll, никакие двоичные файлы, никакие сценарии (или проверьте их thourougly), и т.д.). И зафиксируйте то, что позволило нарушение во-первых прежде, чем включить его в сети снова.
Проблема состоит в том, что в дополнение к той машине однажды наличие доступа к LAN они, возможно, использовали инструменты для получения доступа к любой из других машин также (включая маршрутизатор).
Та же тактика применялась бы на тех также...
Оставьте часть "расследования" другим людям, и другие времена (имейте в наличии диск для того, когда у Вас есть время).
Поскольку режим, детализированный процедура, https://serverfault.com/a/218011/146493, RobM, является хорошим чтением с нормальными и важными шагами.
Использовать awk
:
awk -F, '{ print > $2 ".csv" }' file.csv
Это создаст эти два файла 577.csv
и 132.csv
в Вашем текущем каталоге.
Команда выше предполагает, что Вы можете только иметь 132
или 577
как второе поле. Это создаст одно имя файла для каждого из значений, найденных во втором поле всего file.csv
.
Если существуют другие значения кроме двух, Вы интересуетесь, и Вы хотите проигнорировать те строки, сделать это вместо этого:
awk -F, '$2 == "577" || $2 == "132" { print > $2 ".csv" }' file.csv
Мне нравится terdon's awk
решением, но ради полноты, вот является предложение с помощью только bash
while IFS=, read -r a1 a2 a3 a4; do
echo "$a1,$a2,$a3,$a4" >> "$a2".csv
done < file.csv
Это произведет файлы 577.csv
и 132.csv
в текущем каталоге.
Извлечь все 577 к stdout
grep -e '^.*,577,.*,.*$' youfile.csv >result_extract_557.csv
- отредактируйте 1 Исправленный, на основе комментария @terdon ниже для предотвращения ложных соответствий когда по крайней мере 3 запятые на строке с 577.
grep -e '^[:alnum:]*,577,[:digit:]*,[:digit:]*$' youfile.csv >result_extract_557.csv
Но я думаю его awk
решение является более всесторонним.
foo577bar
или yp9012,132,8,577
.
– terdon♦
07.02.2014, 18:50
.*
может также соответствовать запятым, таким образом, Вы не знаете, какому полю Вы соответствуете. Могло быть вторым, могло также быть 45-м. Моя вторая жалоба была неправильной, Вы правы, что запятые защищают от соответствия foo577bar
.
– terdon♦
07.02.2014, 19:01
Использование csvkit
:
$ csvgrep -c 2 -m 577 data.csv >output.csv
-c 2
заставляет cvsgrep
рассматривать второй столбец, а с -m 577
мы попросите его сопоставить строку 577
в этом столбце.
В output.csv
будет записано следующее:
yp1234,577,1,3
yp5678,577,3,5
Чтобы сопоставить несколько строк и записать вывод в файл для каждой строки:
for pattern in 577 132; do
csvgrep -c 2 -m "$pattern" data.csv >"output-$pattern.csv"
done
Это создаст два файла output-132.csv
и output-577.csv
.