gpt4 book ai didi

swift - 终端命令 : handle special characters in filename

转载 作者:行者123 更新时间:2023-11-28 06:30:44 25 4
gpt4 key购买 nike

我想在终端中执行一些命令。我在 Swift 3.0 中创建它们并将它们写入命令文件。但是一些特殊字符会产生问题,例如单引号:

mv 'Don't do it.txt' 'Don_t do it.txt'

我用单引号来覆盖其他特殊字符。但是单引号本身呢?我怎样才能以正确处理每个可能的文件名的方式转换它们?

最佳答案

你的问题很奇怪:

  1. 在这种情况下,我们将写入 shell 脚本而不是文本文件

  2. 您要替换输出文件名中的单引号,而不是空格,哪个应该被替换

这是一个为输入文件提供适当转义的解决方案,并且适当替换(阅读:空格)输出文件:

#!/usr/bin/awk -f
BEGIN {
mi = "\47"
no = "[^[:alnum:]%+,./:=@_-]"
print "#!/bin/sh"
while (++os < ARGC) {
pa = split(ARGV[os], qu, mi)
printf "mv "
for (ro in qu) {
printf "%s", match(qu[ro], no) ? mi qu[ro] mi : qu[ro]
if (ro < pa) printf "\\" mi
}
gsub(no, "_", ARGV[os])
print FS ARGV[os]
}
}

结果:

#!/bin/sh
mv 'dont do it!.txt' dont_do_it_.txt
mv Don\''t do it.txt' Don_t_do_it.txt
mv dont-do-it.txt dont-do-it.txt

关于swift - 终端命令 : handle special characters in filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40449603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com