Увеличьте числовой шаблон в файле

Это - легкое использование простого for цикл в оболочке.

for f in *.txt; do
    mv "$f" "${f%.*}.fasta"
done

${f%.*} расширяется до имени файла без расширения.

6
18.12.2014, 14:52
4 ответа

Попробуйте бесплатно MS Word Viewer Wine Wine .

-121--36292-

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

awk -F 'REQ| ' '$1 == "(REF-" {field1 = $1; $1 = ""; num = $2; for (i = 0; i < 4096; i++) {$2 = sprintf("%sREQ%04d", field1, num + i); line = $0; sub("^ ", "", line); print line}; next} {print}' inputfile

разбито на нескольких строках:

awk -F 'REQ| ' '$1 == "(REF-" {
        field1 = $1; 
        $1 = ""; 
        num = $2; 
        for (i = 0; i < 4096; i++) {
            $2 = sprintf("%sREQ%04d", field1, num + i); 
            line = $0; 
            sub("^ ", "", line); 
            print line
        };
        next
    }
    {
        print
    }' inputfile
1
27.01.2020, 20:28

Я не уверен, если BOF и EOF - это части файла, но иначе вы можете попробовать следующее AWK код:

awk 'BEGIN{FS="REQ| "}/[[:digit:]]/{for(i=0;i<4096;i++){printf($1"REQ%04d "$3"\n",$2+i)};next}1'
1
27.01.2020, 20:28

Изменение оболочки входа не обязательно предотвращает аутентификацию пользователей (за исключением некоторых услуг, которые проверяют, упоминается ли оболочка пользователя в / etc / olds ).

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

Изменение оболочки на / bin / false или / usr / sbin / nologin будет предотвращать их запустить команды на этих службах, которые могут быть использованы для запуска команд (вход в систему консоли , SSH, Telnet, Rlogin, Rexec ...), поэтому влияют на авторизацию только для некоторых услуг.

для SSH , например, все еще позволяет им делать переадресацию порта.

PassWD -L отключит аутентификацию пароля, но пользователю все еще может быть разрешено использовать другие методы аутентификации (вроде authorized_keys с SSH ).

С PAM по меньшей мере в Linux вы можете использовать модуль PAM_SHELLS для ограничения аутентификации или авторизации для пользователей с разрешенной оболочкой (тем, которые упомянуты в / etc / olds ). Для SSH вы захотите сделать это при авторизации ( учетной записи ), как для аутентификации SSHD использует PAM . Для других методов аутентификации (вроде autorized_keys ), или вы можете сделать это с директивами SSHD_Config в / etc / ssh / sshd_config (вроде utoodUsers И друзья).

Остерегайтесь, хотя это добавление некоторых ограничений в глобальном разрешении PAM, потенциально предотвратит работу CRON рабочих мест в качестве этих пользователей.

-121--7228-

Perl было бы хорошо для этого:

perl -ne 'for $n (1..4096) {s/\d+/ sprintf "%04d", $n /e; print}' File > File2
3
27.01.2020, 20:28

В следующем примере в основном используется nl , хотя tr генерирует кучу пустых строк и sed добавляет в начало бит REQ ...

IFS=\  read -r l r <file
tr \\0 \\n </dev/zero| 
nl -ba -w4 -nrz -s" $r"|
sed "s/^/${l%Q*}Q/;4096q"

Сначала он сохраняет две половины в $ l и $ r с прочитанным ]. Затем он tr аннулирует 4096 нулей в \ n ewlines, которые nl подсчитывают и добавляют $ r к, и последний sed просто добавляет $ l к каждой из своих первых 4096 входных строк перед тем, как q вводит ввод.

Или, что проще, с seq :

IFS=\  read -r l r <file
seq -ws " $r
${l%Q*}Q" 0 4097 | 
sed '1d;$d'
1
27.01.2020, 20:28

Теги

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