最近我构建了一个脚本,可以将我所有的文章从 dev.to 下载到 markdown 文件中。

我使用了时间戳和文章的名称。

[Alt](https://res.cloudinary.com/practicaldev/image/fetch/s--e-NYA47r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// thepracticaldev.s3.amazonaws.com/i/5uxqzlql02izpfsfxbzk.png)

这是可行的,但有一件烦人的事情:每篇文章的文件名和 frontmatter 中都有一个日期。

[Alt](https://res.cloudinary.com/practicaldev/image/fetch/s--dVjRlOsp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev. s3.amazonaws.com/i/bk47tw7fl40ui5k39anm.png)

这导致:

  • 复杂性增加:如果我想更改日期,则必须更改两个地方的日期。

  • 如果有两个不同的日期,真相的来源是什么?

问题

[Alt](https://res.cloudinary.com/practicaldev/image/fetch/s--0jXSWs-3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// thepracticaldev.s3.amazonaws.com/i/23idl0hut7m9fdsdpbjg.png)

期望结果

[Alt Text](https://res.cloudinary.com/practicaldev/image/fetch/s--diUf6ACp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev. s3.amazonaws.com/i/xa0tcaac83bp896ssgmt.png)

让我们解决这个问题

# loop over every file with `md` extension, assign it to `file`
for file in *.md 
do
  # rename (by variable expansion starting from position 11)
  mv "$file" "${file:11}" 
done

进入全屏模式 退出全屏模式

延伸阅读

  • 用于手册页

  • mv 手册页

  • 可变扩展

问题

  • 你会写 bash 脚本吗?

  • 你最喜欢哪个?


Logo

更多推荐