Это - легкое использование простого for
цикл в оболочке.
for f in *.txt; do
mv "$f" "${f%.*}.fasta"
done
${f%.*}
расширяется до имени файла без расширения.
Попробуйте бесплатно 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
Я не уверен, если BOF
и EOF
- это части файла, но иначе вы можете попробовать следующее AWK
код:
awk 'BEGIN{FS="REQ| "}/[[:digit:]]/{for(i=0;i<4096;i++){printf($1"REQ%04d "$3"\n",$2+i)};next}1'
Изменение оболочки входа не обязательно предотвращает аутентификацию пользователей (за исключением некоторых услуг, которые проверяют, упоминается ли оболочка пользователя в / 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
рабочих мест в качестве этих пользователей.
Perl было бы хорошо для этого:
perl -ne 'for $n (1..4096) {s/\d+/ sprintf "%04d", $n /e; print}' File > File2
В следующем примере в основном используется 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'