Они отрывок Debian /etc/default/rsync
(Fedora, вероятно, не отклоняет слишком много),
# run rsyncd at a nice level?
# ...
RSYNC_NICE=''
# run rsyncd with ionice?
# ...
# RSYNC_IONICE='-c3'
заставляет меня думать что *NICE
значения только влияют rsyncd
демон. Взгляд на /etc/init.d/rsync
, мы находим
if [ -s $RSYNC_DEFAULTS_FILE ]; then
. $RSYNC_DEFAULTS_FILE
case "x$RSYNC_ENABLE" in
xtrue|xfalse) ;;
xinetd) exit 0
# ... the next lines examine the *NICE variables...
т.е. если rsync
используется с inetd
, *NICE
значения не имеют значения вообще.
Вы могли попытаться заменить rsync
строка в inetd.conf
,
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
^^^^^^^^^^^^^^
с некоторой командной строкой, устанавливающей Ваш [io]nice
значения, я предполагаю.
Царапина редактирования, которые длятся комментарий, Вы используете xinetd
и таким образом, если Вы хотите попробовать его, должны измениться rsync
команда в отрезанном Вы включали:
service rsync
{
...
server = /usr/bin/rsync
...
}
Edit2, Судящий по этому, существует a xinetd
объект конфигурации называют nice
для правильности команды:
nice Changes the server priority like the nice command does.
Таким образом, Вы могли попробовать комбинацию установки nice=19
в /etc/xinetd.d/rsync
и предварительное ожидание server
команда с некоторыми ionice
звоните, например. ionice -c3
.
(Я не уверен, работает ли это, все же. Но если это не делает, можно все еще работать rsyncd
как демон и позволяют /etc/init.d
сценарий заботится обо всем.)
Инвертируйте вход прежде и после cut
с rev
:
<infile rev | cut -d, -f2 | rev
Вывод:
d
i
n
Попытайтесь делать это с awk:
awk -F, '{print $(NF-1)}' file.txt
Или использование жемчуга:
perl -F, -lane 'print $F[-2]' file.txt
Или использование рубина (благодарит manatwork):
ruby -F, -lane 'print $F[-2]' file.txt
Или использование bash
(спасибо manatwork):
while IFS=, read -ra d; do echo "${d[-2]}"; done < file.txt
Или использование Python:
cat file.txt |
python -c $'import sys\nfor line in sys.stdin:\tprint(line.split(",")[-2])'
bash
не нуждается в зафиксированном количестве столбцов для этого: while IFS=, read -ra d; do echo "${d[-2]}"; done < file.txt
.
– manatwork
13.02.2013, 17:03
perl
с ruby
.
– manatwork
13.02.2013, 17:08
-
или (в зависимости от среды, оболочки, или как оболочка была скомпилирована), может содержать символы обратной косой черты, затем echo
не опция. Почему необходимо подставитьcat
enate file.txt
ни с чем прежде, чем подать его к python
!?. Вам нужно read -A
вместо read -a
в ksh93
и zsh
. Отрицательные нижние индексы работают в zsh
но только в последних версиях ksh93
и bash
. В более старых версиях можно использовать ${d: -2:1}
– Stéphane Chazelas
13.02.2013, 18:01
${d[@]: -2:1}
в Вашем последнем предложении.
– manatwork
15.02.2013, 10:17
Использование sed:
sed -E 's/^([^,]*,)*([^,]*)(,[^,]*){1}$/\2/' infile
Выход:
d
i
n
([^,]*,)*
соответствует любому количеству символов запятой, отличных от -, за которыми следует запятая, т. е. любому количеству столбцов. ([^,]*)
соответствует столбцу. (,[^,]*){1}
соответствует одному столбцу в конце, если вы измените квантификатор {1}
на {2}
, он будет соответствовать третьему столбцу с конца и т. д.
cut
не может взять отрицательные полевые индексы (как Python). – Keith Devens 09.04.2018, 07:55