Я пытаюсь получить путь из полного пути и скопировать его в новый столбец, но мне сложно управлять кавычками. У меня есть столбец с «/ volume2 / test / вот он / my file.avi», и я хочу скопировать в другой столбец только «my file.avi». (Мне тоже нужен путь, но я проверю его позже) может кто-нибудь помочь?
/usr/bin/psql -U postgres video_metadata -q -A -t -c \"""SELECT RIGHT(path, POSITION('\' in REVERSE(path)) -1 ) from video_file;""\""
но у меня эта ошибка
syntax error near unexpected token `('
Если я попробую что-нибудь более чистое, например
/usr/bin/psql -U postgres video_metadata -q -A -t -c "SELECT RIGHT(path, POSITION('\' in REVERSE(path)) -1 ) from video_file;"
У меня эта ошибка
ERROR: unterminated quoted string at or near "'\' in REVERSE(path)) -1 ) from video_file;"
LINE 1: SELECT RIGHT(path, POSITION('\' in REVERSE(path)) -1 ) from ...
У вас есть 3 двойные кавычки в начале и 4 в конце, вот в чем проблема. Кстати, есть ли у вас особая причина избегать двойных кавычек \" на консоли Linux?
почему у тебя на пути '\'?
У меня есть столбец с полным путем, например «/ volume2 / test / вот он / my file.avi», и я хочу скопировать в другой столбец только «my file.avi» (на данный момент, после, я дам это попытка только пути: D)
Используйте здесь-документ, чтобы решить (почти) все проблемы с цитированием: stackoverflow.com/a/7820049/905902





Я думаю, вы имеете в виду следующее:
/usr/bin/psql -U postgres video_metadata -q -A -t -c "SELECT RIGHT(path, POSITION('\' in REVERSE(path)) -1 ) from video_file;"
Я ответил в исходном сообщении, но он не работает с '\'
выяснил .... Я перепутал путь к Windows ..... это должно быть '/', а не '\'
полная команда будет:
/usr/bin/psql -U postgres video_metadata -q -A -t -c "SELECT RIGHT(path, POSITION('/' in REVERSE(path)) -1 ) from video_file;"
В чем проблема:
psql -U postgres video_metadata -q -A -t -c "SELECT RIGHT(path, POSITION('\' in REVERSE(path)) -1 ) from video_file;"?