@Senseich

Как правильно заменить пути в именах файлов?

Люди добрые помогите решить такую задачку, т.к. в bash я совсем не понимаю.
У меня есть каталог в котором фото, я нашел скрипт который записывает в файл имена каждого с новой строки. Они получаются с путями моего ПК, мне надо заменить эти пути на другие и добавить в начале и в конце символы массива.
Т.е. есть список:
старый путь/файл_1.jpg
старый путь/файл_2.jpg


Надо сделать
var arrIm = [
'новый путь/файл_1.jpg'
'новый путь/файл_2.jpg'
];


Новые обязательно должны быть в одинарных кавычках. Буду благодарен если поможете, 2 часа убил, пока не осилил )
  • Вопрос задан
  • 167 просмотров
Решения вопроса 2
xotkot
@xotkot
хорошо есть и хорошо весьма
cat fileOldPath.txt | awk -F/ 'BEGIN{print "var arrIm = ["}{print "'\''новый путь/"$NF"'\''"}END{print "];"}' > fileNewPath.txt
Ответ написан
@AVKor
#!/usr/bin/env bash

s="
старый путь/файл_1.jpg
старый путь/файл_2.jpg
"
n='var arrIm = ['
n+=$(echo "$s" | sed -E -e "s/(.+)/'\1'/" -e 's/старый путь/новый путь/')
n+="
];"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Senseich
вот ваш пример с испрваленными ошибками
единственное что я не стал разбирать - локализованные названия директорий..
русский в пути уберите - назовите английскими буквами

#!/bin/bash

FILE="/tmp/file2.txt"
B='var arrIm = ['
L=$(cat $FILE | sed -e "s/\\(..*\\)/'\\1'/g" | sed -e 's|C:\\Users\\SEN\\Desktop\\777\\|https://ohiyo.ru/uploads/posts/|g')
E="
];"

echo "$B$L$E"


cat $FILE
C:\Users\SEN\Desktop\777\XXX.TXT


./a.sh
var arrIm = ['https://ohiyo.ru/uploads/posts/XXX.TXT'
];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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