От man mount
:
-t, --types vfstype The argument following the -t is used to indicate the filesystem type. The filesystem types which are cur‐ rently supported include: adfs, affs, autofs, cifs, [ . . . ]
И proc
, среди прочих. Поэтому аргумент -t
принимает один из нескольких типов файловых систем, а не /a/directory/name
. Mount, как обычно, принимает имя системы, которую вы хотите смонтировать, а затем каталог, в который смонтирована система. Таким образом, ваша команда будет выглядеть так:
mount --rbind /sys $chroot_dir/sys/ mount --rbind /dev $chroot_dir/dev/ mount -t proc /proc $chroot_dir/proc/
Я поддерживаю Thomas, который упомянул, что вы можете прочитать больше об этом в таких местах, как статья Arch Wiki, на которую он указал (хотя некоторые правила могут варьироваться в зависимости от системы, в зависимости от того, что вы хотите сделать).
Было бы проще сsed
:
sed -e :1 -e 's/\({[^}]*\)"\([^}]*}\)/\1\2/g; t1'
илиperl
:
perl -pe 's{\{.*?\}}{$& =~ s/"//gr}ge'
Обратите внимание, что предполагается отсутствие вложенных {...}
.
Для обработки вложенных {...}
вы можете использовать perl
возможности рекурсивного регулярного выражения:
perl -pe 's(\{(?:[^{}]++|(?0))*\})($& =~ s/"//gr)ge'
С помощью sed
выходим наружу, чтобы избежать внутренних {...}
s перед удалением "
s:
sed 's/_/_u/g
:1
s/\({[^{}]*\){\([^{}]*\)}/\1_<\2_>/g; t1
:2
s/\({[^}]*\)"\([^}]*}\)/\1\2/g; t2
s/_</{/g; s/_>/}/g;s/_u/_/g'
Попробуйте это, используяsed
:
$ sed -r ' :L; s/(\{[^"}]*)"(([^"}]*")*)([^"}]*\})/\1\2\4/g; tL; ' file
awk
для вложенных раскосов:
awk -F{ '
{for (i=2; i<=NF; i++) {if (1 == n = split ($i, T, "}")) n++
for (j=1; j<n; j++) {RS = index ($i, T[j])
L = gsub (/"/, _, T[j])
$i = substr ($i, 1, RS-1) T[j] substr ($i, RS + length (T[j]) + L)
}
}
}
1' OFS="{" file
Неуклюже, но дает указанный результат, по крайней мере, для одиночных вложенных фигурных скобок.