Bash текст разбора гольф - PullRequest
0 голосов
/ 14 января 2009

Я пишу сценарий оболочки, чтобы, среди прочего, определить, когда в последний раз ветка создавалась в хранилище Subversion. Работает следующий код:


        DEV='http://some/svn/server/'
        BRANCH='some/repos/branches/'
        LAST_UPDATE=`svn list http://$DEV$BRANCH | sort -r`
        LAST_UPDATE=${LAST_UPDATE:0:10}

Но мне не нравятся последние две строки. Как я могу объединить их вместе?

NOTE: 

`svn list http://some/svn/server | sort -r`
will return a list of folders such as:
2009-01-12/
2009-01-11/
...
2009-01-01/

Я просто пытаюсь удалить косую черту

Ответы [ 2 ]

4 голосов
/ 14 января 2009

Как насчет:

    LAST_UPDATE=`svn list http://$DEV$BRANCH | sort -r | awk -F\/ '{print $1}'`

Я не проверял это, и я не уверен, что кавычки внутри обратных тиков вызовут какие-либо проблемы, но в противном случае я не могу понять, почему это не сработает ...

Ben

1 голос
/ 24 января 2009

Другим, возможно, более надежным предложением было бы использовать basename:

LAST_UPDATE=`svn list http://$DEV$BRANCH | sort -r | xargs -i basename {}`

Ключевое преимущество заключается в том, что basename знает о синтаксисе пути и будет создавать каноническое представление независимо от того, какие имена странных файлов вы ему выбрасываете.

...