Лучший способ для замены подстрок из одного массива на значения из другого массива?

Вы можете использовать:

for i in ./*.mp4; do echo "file" \'$(realpath ${i#*\/})\' >> files.txt; done

Если вам не нужно file перед каждым именем файла, вы можете использовать:

ls path/to/files/*.mp4 > files.txt

Результат из первой команды :

file '/home/george/Documents/askubuntu/disk_use.txt'
file '/home/george/Documents/askubuntu/efi_info.txt'
file '/home/george/Documents/askubuntu/empty.txt'
file '/home/george/Documents/askubuntu/fam.txt'

Примечание:

Я использовал .txt файлы, ваш будет .mp4. Это выполняется из интересующей папки, если вам нужно настроить таргетинг на другого, пожалуйста, измените строку for i in ./*.mp4 tp для i в / path / to / files / *. Mp4`.
1
задан 31 May 2018 в 10:46

1 ответ

У Вас самое простое решение. Для регистронезависимого варианта использовать caseInsensitive:

var someString = "сб: 16:00-18:00, ПН: 13:00, Сб-Вс: 16:00"

let whatToReplace = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"]
let onWhichToReplace = ["-1-", "-2-", "-3-", "-4-", "-5-", "-6-", "-7-"]

assert(whatToReplace.count == onWhichToReplace.count)
for i in whatToReplace.indices {
    someString = someString.replacingOccurrences(of: whatToReplace[i], with: onWhichToReplace[i], options: .caseInsensitive)
}
print(someString)
2
ответ дан 6 June 2018 в 11:58
  • 1
    спасибо за "опции: .caseInsensitive " ) – xhr 31 May 2018 в 12:16
  • 2
    я думал, может есть какой-то метод, который использует массивы для поиска / замены в качестве параметров (типа как в php php.net/manual/ru/function.str-ireplace.php ), но я его не увидел в документации ... – xhr 31 May 2018 в 17:00

Другие вопросы по тегам:

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