使用带有花括号扩展名的触摸创建多个空格分隔的文件

使用带有花括号扩展名的触摸创建多个空格分隔的文件

如果我这样做:

touch {1,2,3}.txt

我明白了

1.txt 2.txt 3.txt

但如果我这样做

touch {"File 1", "File 2"}.txt

我没有得到预期结果'File 1.txt' 'File 2.txt'。在这种情况下,正确的方法是什么?

答案1

后面的空格会,导致 shell 将你的表达式解析为两个单独的标记,而不是括号扩展:

$ printf '%s\n' {"File 1", "File 2"}.txt
{File 1,
File 2}.txt

您只需删除空格:

$ printf '%s\n' {"File 1","File 2"}.txt
File 1.txt
File 2.txt

所以

$ touch {"File 1","File 2"}.txt
$ ls
'File 1.txt'  'File 2.txt'

更紧凑地,你也可以使用touch "File "{1,2}.txttouch File\ {1,2}.txt

答案2

或者,也可以在 bash 中执行此操作for 循环像这样:

for f in "fil 1" "file 2"; do
    touch "$f".txt
done

相关内容