[英]How do i grab text and place them in a particular order?
我正在使用谷歌脚本( js )重命名我的谷歌驱动器中的文件,我在其中输入旧名称和新名称,用逗号分隔。 输入新旧名称的行是这样的 -
function rename(iA=['old1.mp4','old2.mp4','old3.mp4'],oA=['new1.mp4','new2.mp4','new3.mp4']) {
这很不言自明,old1.mp4 将重命名为 new1.mp4,old2.mp4 将重命名为 new2.mp4,依此类推
该脚本运行良好,没有问题,问题是我有数千个文件要重命名,并且无法在脚本中手动输入每个文件。 幸运的是,我将它们显示在 rename.txt 磁贴中,我想从该磁贴中抓取它们以正确放置在我的脚本/函数中
rename.txt 中的文本格式为OldName NewName
rename.txt 文件的内容是这样的..
RandomAlphanumericChars.mp4 Lecture 1 - Some topic.mp4
RandomAlphanumericChars.mp4 Lecture 2 - Some topic.mp4
RandomAlphanumericChars.mp4 Lecture 3 - Some topic.mp4
这里有两种不同的明显模式..
1) 任何一行中第一次出现空格时,旧名称已结束。 2) newname 字符串总是以单词 Lecture 开头。
(PS不要使用.mp4结尾来识别旧名称的结尾,因为大多数旧名称的名称中有多次.mp4,这会导致问题。一个旧名称的示例 - rgGW6m9j-32313921.mp4-rgGW6m9j-32313921.mp4.mp4 )
为了把所有东西放在最后,正则表达式应该从 rename.txt 中获取文本并像这样放在 function 中。
function rename(iA=['RandomAlphanumericChars.mp4','RandomAlphanumericChars.mp4','RandomAlphanumericChars.mp4'],oA=['Lecture 1 - SomeTopic.mp4','Lecture 2 - Some topic.mp4','Lecture 3 - Some topic.mp4']) {
这里唯一重要的是顺序保持正确,即 oldName 和 NewName 应该以与 rename.txt 文件中相同的顺序放置在 function 中
这是一些基本的结构和困难的部分,您需要添加缺少的文本
$ awk -v q="'" 'function join(a,s)
{t=""; for(k in a) {s=s t q a[k] q; t=","} return s}
function wrap(x)
{return "[" x "]"}
{a[NR]=$1; $1=""; sub(/^ /,""); b[NR]=$0}
END {print "iA=" wrap(join(a)) "," "oA=" wrap(join(b))}' file
iA=['RandomAlphanumericChars.mp4','RandomAlphanumericChars.mp4','RandomAlphanumericChars.mp4'],oA=['Lecture 1 - Some topic.mp4','Lecture 2 - Some topic.mp4','Lecture 3 - Some topic.mp4']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.