Если Вы должны сделать замены относительно первого поля, лучше всего должны использовать awk решение Rahul, но остерегаться, оно может влиять на интервал (поля переписываются с одиночным пробелом, промежуточным их).
Можно избежать его путем записи его вместо этого:
perl -pe 's|\S+|$&=~tr/./-/r|e' file
-p
флаг означает, "читает входной файл линию за линией и печатают каждую строку после применения сценария, данного -e
". Затем замена (s|pattern|replacement|
) первая последовательность непробелов (\S+
) с подобранным шаблоном ($&
) после замены всеми .
с -
. Прием должен использовать s|||e
где e
оператор оценит выражение как замену. Так, у Вас может быть одна замена (tr/./-/
) относившийся соответствие ($&
) из предыдущего (s|||e
).
Если необходимо заменить каждым .
с a -
кроме последних 3 последних, с GNU sed
и принятие Вас имеет a rev
команда:
rev file | sed 's/\./-/4g' | rev
Только владелец файла или пользователь root может изменять права доступа к файлу. Вам нужно либо изменить владельца файла, чтобы он принадлежал пользователю deploy
, либо запустить сценарий от имени пользователя root.
Вместо того, чтобы chmod'ировать загруженные сценарии оболочки Capistrano, было бы более безопасно, если бы Cap поместил их в не -глобальное местоположение tmp. Например:
set :tmp_dir, "/home/deploy/tmp"