der*_*nor 60 command-line files batch
我一直在用一本非常酷的 C 入门书学习编程,我写下了每个示例和任务,以便我可以记住语法。到目前为止,我手动完成了每个文件,但是单击、命名和保存变得令人筋疲力尽。
我需要一种方法来创建多个文件,如bspl0001.c,bspl0002.c,bspl0003.c,等,并将其保存在目录“learning_c”什么的。
我是 Ubuntu / Linux 的菜鸟,老实说只通过 VirtualBox 运行它,因为 IDE Geany 很容易设置。因此,我真的不知道终端是如何工作的。
编辑我刚刚发现自己在我的这个旧帐户中,并且正在摇头为什么我想用心学习代码语法。有趣的是,我几乎完成了我的 CS / Math BSc 学习。非常感谢您事后的帮助!
0x2*_*fa0 103
您可以使用以下命令执行此操作:
mkdir learning_c
cd learning_c
touch bspl{0001..0003}.c
Run Code Online (Sandbox Code Playgroud)
mkdir learning_c
learning_c在当前文件夹中创建一个名为的文件夹~cd命令(即cd Desktop)更改当前目录cd learning_c
touch bspl{0001..0003}.c
touch是一个创建空文件和修改时间戳的工具;我们正在创建空文件。touch myfile将创建一个名为myfile.( bspl{0001..0003}.c)后面的丑陋代码称为大括号扩展。这是bashshell 的一个重要功能,它允许您创建任意字符串组合的长列表。您可以在Bash Hackers Wiki 中了解更多相关信息。在这种情况下,您将制作一长串将传递给touch. 您还可以使用它的长等效项:
touch bspl0001.c bspl0002.c bspl0003.c
Run Code Online (Sandbox Code Playgroud)您可以更改文件数:如果您想要 12 个文件,您可以运行 bspl{0001..0012}.c.
0012而不是12)确保输出使用零填充的 4 位数字。您可以使用以下python代码,您可以对其进行修改以满足您的需要。
使用文件名保存以下代码filecreator.py
#!/usr/bin/env python
import os
import subprocess
work_path = os.path.abspath(os.path.dirname(__file__))
if not os.path.exists("learning_c"):
os.mkdir("learning_c")
os.chdir(os.path.expanduser(work_path+"/learning_c"))
n = 10 #put the number as you wish
for i in range(n):
subprocess.call(['touch', "bsdl"+str(i).zfill(4)+".c"])
Run Code Online (Sandbox Code Playgroud)
然后用这个命令执行它:
python filecreator.py
Run Code Online (Sandbox Code Playgroud)