sed '1n;s|$| |;:na
s|\([+-] .*\) [+-]*[0-9]\{1,2\} |\1 NA |
t na;s| $||'
Судя по данным, которые вы показываете, нет причин, по которым этот маленький sed
s ///; функция t
не должна работать, я не думаю. (Спасибо jw013 за указание на потенциально пропущенный последний столбец.) Это просто заменяет каждую 1- или 2-символьную числовую строку после +/-
, затем в строке с все, что ему предшествовало, и
NA
, пока больше нечего будет заменять.
Вот еще одна версия без рекурсии, в которой используется старое пространство h
sed
:
sed '1n;h;s|.*[+-] ||;s|$| |
s| [+-]*[0-9]\{1,2\} | NA |g
x;G;s|\([+-] *\).*\n|\1|;s| $||'
Он опирается на тот же маркер и разделяет строку там - первую половину остается нетронутым в h
старом пространстве, в то время как он полностью удаляется из пространства шаблонов. Затем мы выполняем глобальную замену для всех 1,2 числовых символьных слов, добавляем в h
старое пространство, e x
изменяем шаблон и h
старые пробелы и удаляем все, что находится между маркером и \ n
ewline, вставленным в результате операции добавления.
Я вижу несколько возможных причин вашей проблемы. 1. Перед вашей командой нет ssh . Попробуйте это:ssh stan@192.168.159.133 /root/Documents/script
2. вы входите на удаленный сервер как stan и пытаетесь выполнить скрипт, который находится под пользователем root . Стэн не будет иметь доступа к этому скрипту, даже если вы измените разрешения на файл script .
3. Разрешения спускаются вниз по дереву каталогов с атрибутом x . По умолчанию /root не разрешает доступ к чему-либо ниже него.ssh stan@192.168.159.133 ls -ld /root
ssh stan@192.168.159.133 ls -ld /root/Documents
Вы, вероятно, увидите что-то вроде этого:drwxr----- root root /root
Или, что более вероятно, вы получите сообщение об отказе в доступе, потому что Стэн не может заглянуть в /root.
Возможности:
BAD root :192.168.159.133#chmod -R a+rx /root
Лучше переместите /root/Documents/script /tmp и установите разрешения на выполнение для /tmp
ЛУЧШИЙ создайте каталог с именем /share, переместите /root/Documents/script в /share и установите разрешения r+x для /share