Удалите строки текста, которые заканчиваются на "/"

Я нашел свой ответ.

Никогда, никогда не оставляйте какие-либо файлы в каталоге с поддержкой сайтов - у меня был старый файл конфигурации vhost, который был сохранен как host.bck, который по какой-то причине читался Apache, и он выполнил конфигурацию в нем для всех vhosts ... в основном мои файлы конфигурации вообще не работали до того момента, когда я это узнал.

4
23.07.2017, 16:39
3 ответа

Есть лучший способ сделать это :использоватьaws s3 sync

Пример

aws s3 sync somefiles/ s3://durktest/blender

прочтите Справочник по командам AWS CLI для получения дополнительной информации

12
27.01.2020, 20:44

Чтобы удалить строки, оканчивающиеся на /, просто используйтеsed:

sed '/\/$/d'  

Копирует из стандартного ввода в стандартный вывод, удаляя строки, заканчивающиеся на /. Или используйтеgrep:

grep -v '/$'  

Вероятно, есть много других способов.

7
27.01.2020, 20:44

С GNUxargs:

grep -v '/$' list.txt |
  xargs -rd '\n' -I@FILE@ aws s3 cp "$lcDir/@FILE@" s3://durktest/blender/@FILE@

(при условии, что $lcDirне содержит@FILE@)

Обратите внимание, что у вас есть несколько проблем в коде,:

  • Вы позвонили readбез -rи без опорожнения$IFS
  • вы забыли процитировать $lcDirи$F
  • вы использовалиecho
  • в любом случае при таком подходе у вас возникнут проблемы с именами файлов, содержащими символы новой строки.

Если вы хотите использовать цикл, вы можете:

(
  ret=0
  while IFS= read -r F <&3; do
    case $F in
      (*/) ;;
      (*)
        printf '%s\n' "$F"
        aws s3 cp "$lcDir/$F" "s3://durktest/blender/$F" || ret=$?;;
    esac
  done 3< list.txt
  exit "$ret"
)    

Вы также можете рассмотреть, duplicityкакой AFAIK поддерживает Amazon s3 в качестве серверной части.

5
27.01.2020, 20:44

Теги

Похожие вопросы