【问题标题】:Linux shell - Creating Folder and Numbered text files in each folderLinux shell - 在每个文件夹中创建文件夹和编号文本文件
【发布时间】:2013-12-29 19:47:17
【问题描述】:

我一直在尝试创建 100 个名称为 Client 编号为 1-100 的文件夹,例如(client1,client2..client100)我还想在每个名为 client 的文件夹中创建一个文本文件,然后在文件夹中添加相同的编号。我已经掌握了这种编码:

mkdir -p Client{1..100} && touch Client{1..100}/Client.txt

但是这个命令行只生成了一个名为client的文本文件,没有编号。请你能帮我找出代码来做到这一点。

谢谢

【问题讨论】:

  • 你需要一个for 循环。
  • 使用 {001..100} 而不是 {1..100},因此所有名称的长度都相同,并且会按顺序排序,不会大惊小怪。或者,如果 0 到 99 的数字可以使用,请使用 {00..99}。顺便说一句,你用的是什么外壳?

标签: linux shell ubuntu mkdir


【解决方案1】:

更简洁:

for x in Client{1..100}; do
    mkdir -p $x
    touch $x/$x.txt
done

【讨论】:

  • 感谢这段代码成功了。我能够完成任务,然后更多的源于此。
【解决方案2】:

试试这个:

for x in {1..100}
do
    mkdir -p Client$x
    touch Client$x/Client$x.txt
done

您可以使用seq 命令代替{1..100} 并获得其他功能。例如:

for x in `seq -w 1 100`
do
   ....

【讨论】:

  • 谢谢。我会尝试这个编码,如果我有任何问题会回复你。
  • 不要使用seq{1..N} 更好,更便携。
  • @janos:但是seq 有这么多功能(OP 不需要)!
  • @rodrigo unix.stackexchange.com 上的一位大师明确地劝阻我。我不记得他的确切观点,但我确信。我知道 BSD 和 UNIX 默认没有 seq 的事实,我真的更喜欢使用我可以在任何地方都可以依赖的东西,总是。还有一点,不要使用反引号,$() 要好得多。
猜你喜欢
  • 2018-10-21
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多