Я вижу два (похожих) решения для вашей проблемы:
SSH Chroot jail Когда пользователь входит в систему с ssh, он будет автоматически зацикливаться в каталоге, который вы настроили, и не сможет выйти из него (jail) SFTP Я использовал mysecureshell несколько раз, когда это необходимо для обеспечения доступа к каталогу webroot. MySecureShell - это в основном обертка вокруг chroot, поэтому более или менее она будет делать то же самое.Вот путь:
sed 's/\\prc{\([^}]*\)}/\1 %/g'
Это приведет к захвату всего внутри скобок после \prc и сохранит его в группе 1, вы можете использовать это, чтобы заменить команду содержимым кронштейны. [^}]* просто берет все, кроме закрывающей скобки. g означает «глобально» и означает, что он заменит все вхождения шаблона в строке, а не только на первый, - вы захотите этого для каждого выражения в вашем случае.
Что касается другой, просто используйте несколько групп:
sed 's/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g'
Вы можете комбинировать столько выражений, сколько хотите, но это становится легко неясным. Я рекомендую записать скрипт sed с одним выражением на строку следующим образом:
#!/bin/sed -f
s/\\prc{\([^}]*\)}/\1 %/g
s/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g
Сохраните его, например. script.sed, сделайте его исполняемым с помощью chmod +x /path/to/script.sed и запустите его с помощью /path/to/script.sed.
$ /path/to/script.sed <hello.txt
This is my \textbf{text} where there are about 5 % commands, i.e. 30 ± 20 m.
Я позволяю оболочке открывать входные файлы как можно чаще, поэтому <hello.txt вместо просто hello.txt (что также работает!). Если вам интересно, что это именно так, я рекомендую этот ответ на unix.SE.
Вот путь:
sed 's/\\prc{\([^}]*\)}/\1 %/g'
Это приведет к захвату всего внутри скобок после \prc и сохранит его в группе 1, вы можете использовать это, чтобы заменить команду содержимым кронштейны. [^}]* просто берет все, кроме закрывающей скобки. g означает «глобально» и означает, что он заменит все вхождения шаблона в строке, а не только на первый, - вы захотите этого для каждого выражения в вашем случае.
Что касается другой, просто используйте несколько групп:
sed 's/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g'
Вы можете комбинировать столько выражений, сколько хотите, но это становится легко неясным. Я рекомендую записать скрипт sed с одним выражением на строку следующим образом:
#!/bin/sed -f
s/\\prc{\([^}]*\)}/\1 %/g
s/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g
Сохраните его, например. script.sed, сделайте его исполняемым с помощью chmod +x /path/to/script.sed и запустите его с помощью /path/to/script.sed.
$ /path/to/script.sed <hello.txt
This is my \textbf{text} where there are about 5 % commands, i.e. 30 ± 20 m.
Я позволяю оболочке открывать входные файлы как можно чаще, поэтому <hello.txt вместо просто hello.txt (что также работает!). Если вам интересно, что это именно так, я рекомендую этот ответ на unix.SE.
Вот путь:
sed 's/\\prc{\([^}]*\)}/\1 %/g'
Это приведет к захвату всего внутри скобок после \prc и сохранит его в группе 1, вы можете использовать это, чтобы заменить команду содержимым кронштейны. [^}]* просто берет все, кроме закрывающей скобки. g означает «глобально» и означает, что он заменит все вхождения шаблона в строке, а не только на первый, - вы захотите этого для каждого выражения в вашем случае.
Что касается другой, просто используйте несколько групп:
sed 's/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g'
Вы можете комбинировать столько выражений, сколько хотите, но это становится легко неясным. Я рекомендую записать скрипт sed с одним выражением на строку следующим образом:
#!/bin/sed -f
s/\\prc{\([^}]*\)}/\1 %/g
s/\\mErrRange{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}/\1 ± \2 \3/g
Сохраните его, например. script.sed, сделайте его исполняемым с помощью chmod +x /path/to/script.sed и запустите его с помощью /path/to/script.sed.
$ /path/to/script.sed <hello.txt
This is my \textbf{text} where there are about 5 % commands, i.e. 30 ± 20 m.
Я позволяю оболочке открывать входные файлы как можно чаще, поэтому <hello.txt вместо просто hello.txt (что также работает!). Если вам интересно, что это именно так, я рекомендую этот ответ на unix.SE.