Shell 脚本 - 运行正则表达式来修改文件,其中包括文件名

发布于 2024-09-06 22:46:52 字数 104 浏览 4 评论 0原文

我有许多名为 12345.html、12346.html 等的 html 文件。我需要将“style.css”更改为“style-12345.css”或适当的文件名。不知道用什么工具,有推荐吗?

I have many html files named 12345.html, 12346.html, etc. I need to change "style.css" to "style-12345.css" or the appropriate file name. I'm not sure what tool to use, recommendations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叫嚣ゝ 2024-09-13 22:46:52

使用 for 循环和 sed 可以轻松完成此操作:

for i in *.html; do
    sed -i "s/style\\.css/style-`basename $i .html`.css/g" $i
done

循环运行内部命令,并将 $i 设置为每个 .html 文件名。 sed -i 就地修改文件。 basename $i .html 获取不带 .html 后缀的 $i (即只是数字)

This is pretty easily done with a for loop and sed:

for i in *.html; do
    sed -i "s/style\\.css/style-`basename $i .html`.css/g" $i
done

The loop runs the inner command with $i set to each .html filename. sed -i modifies the file in place. basename $i .html gets $i without the .html suffix (i.e. just the number)

舂唻埖巳落 2024-09-13 22:46:52

查找名为rename 的命令。它有两种类型,具体取决于实施情况。

perl 包提供了 /usr/bin/prename,它使用 perl 风格的正则表达式来重命名文件。例如,此命令

$ prename 's/foo/bar/ *foo* 

会将每个包含“foo”的文件名中的“foo”更改为“bar”。

util-linux 软件包提供了 /usr/bin/rename,它使用简单的字符串替换来重命名文件。例如,此命令

$ rename foo bar *foo*

与第一个命令具有相同的效果。

prename 比常规的 rename 功能强大得多,但这种功能意味着它使用起来更加棘手。

Look for a command named rename. It comes in two varieties, depending upon the implementation.

The perl package provides /usr/bin/prename which uses perl-style regular expressions to rename files. As an example, this command

$ prename 's/foo/bar/ *foo* 

would change 'foo' to 'bar' in every filename that contains 'foo'.

The util-linux package provides /usr/bin/rename which uses simple string substitution to rename files. As an example, this command

$ rename foo bar *foo*

would have the same effect as the first one.

prename is much more powerful than regular rename, but that power means it's trickier to use.

许仙没带伞 2024-09-13 22:46:52
perl -pi -e 's/style.css/style-12345.css/g' *.html
perl -pi -e 's/style.css/style-12345.css/g' *.html
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文