Вы можете добавить параметр -T5
, чтобы увеличить скорость сканирования. Согласно nmap Timing and perfermance рекомендуется использовать параметр -T4
:
Я бы рекомендовал всегда использовать -T4. Некоторым нравится -T5, хотя на мой вкус он слишком агрессивен. Люди иногда указывают -T2, потому что они думают, что это менее вероятно приведет к сбою хостов, или потому что они считают себя вежливыми в целом.Они часто не понимают, насколько медленным на самом деле является -T вежливо. Их сканирование может занять в десять раз больше времени, чем сканирование по умолчанию. Сбои в работе машины и проблемы с пропускной способностью при использовании параметров синхронизации по умолчанию (-T3) возникают редко, поэтому я обычно рекомендую это для осторожных сканеров. Пропуск определения версии намного эффективнее, чем игра со значениями времени для уменьшения этих проблем.
С awk
:
#!/usr/bin/awk -f
BEGIN { OFS="," };
FNR==1 {
split(FILENAME,c,/[_.]/);
};
{ print c[1], c[2], $0 }
Или как однострочник для запуска из командной строки или встраивания в сценарий оболочки:
awk -v OFS=',' 'FNR==1 {split(FILENAME,c,/[_.]/)}; {print c[1],c[2],$0}' *.csv
Для каждого входного файла это разбивает каждое ИМЯ ФАЙЛА на массив c
с использованием класса символов [_.]
в качестве разделителей полей. Поля 1 и 2 массива c
добавляются к каждой строке файла.
Пример вывода:
$ ./zsha.awk exam_20.csv
exam,20,1,2,3,4
exam,20,5,6,7,8
exam,20,9,10,11,12
В примере использовались следующие входные данные:
$ cat exam_20.csv
1,2,3,4
5,6,7,8
9,10,11,12
Этот код должен сделать это с помощью sed, сохранить его как исполняемый файл и запустить с полным путем к исходному файлу в качестве первого (и единственного) параметра. Вы можете сохранить результат в новый файл, если хотите.
#!/bin/bash
FILE=$1
# check the file exists
[[ -s $FILE ]] || { echo "Can't locate file '$FILE', aborting" >&2; exit 1; }
# get the filename without directory
NAME=$(basename "$1")
# get the first 4 characters as FIRST
FIRST=${NAME:0:4}
# get the 6th & 7th characters as SECOND
SECOND=${NAME:5:2}
# are we good to go?
read -t30 -p "About to prefix '$FIRST,$SECOND,' to all lines in $FILE - ok (y/-): "
[[ $REPLY == "y" ]] || { echo "No changes made"; exit 0; }
# do it
sed "s/^/$FIRST,$SECOND,/" "$FILE"
exit 0
файл exc_02:
line1,some,stuff
line2,some,more,stuff
вывод:
exam,02,line1,some,stuff
exam,02,line2,some,more,stuff