相关疑难解决方法(0)

递归计算Linux目录中的文件

如何递归计算Linux目录中的文件?

我找到了这个:

find DIR_NAME -type f ¦ wc -l
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它返回以下错误.

find:paths必须在表达式之前:|

linux

667
推荐指数
13
解决办法
60万
查看次数

如何在bash中填充整数序列以使所有宽度相同?

我需要循环一些值,

for i in $(seq $first $last)
do
    does something here
done
Run Code Online (Sandbox Code Playgroud)

对于$first$last,我需要它是固定长度5.所以如果输入是1,我需要在前面添加零,使它成为00001.它循环直到99999例如,但长度必须是5.

如:00002,00042,00212,012312等等.

关于我如何做到这一点的任何想法?

bash numbers padding

380
推荐指数
10
解决办法
23万
查看次数

Linux shell脚本将前导零添加到文件名

我有一个大约1,700个文件的文件夹.它们都被命名为1.txt1497.txt等.我想重命名所有文件,以便所有文件名都是四位数.

即,23.txt成为0023.txt.

什么是shell脚本才能执行此操作?或者一个相关的问题:我如何使用grep只匹配包含的行\d.txt(即一个数字,然后一个句点,然后是字母txt)?

这是我到目前为止所拥有的:

for a in [command i need help with]
do
  mv $a 000$a
done
Run Code Online (Sandbox Code Playgroud)

基本上,运行三次,使用命令找到一位数,两位数和三位数文件名(初始零的数量已更改).

linux bash shell grep

55
推荐指数
5
解决办法
8万
查看次数

通过用零填充来批量重命名顺序文件

我有一堆像这样命名的文件:

output_1.png
output_2.png
...
output_10.png
...
output_120.png
Run Code Online (Sandbox Code Playgroud)

重命名那些匹配约定的最简单方法是什么,例如最多四位小数,以便命名文件:

output_0001.png
output_0002.png
...
output_0010.png
output_0120.png
Run Code Online (Sandbox Code Playgroud)

这在Unix/Linux/BSD中应该很容易,尽管我也可以访问Windows.任何语言都可以,但我对一些非常简洁的单行(如果有的话)感兴趣.

rename batch-file batch-rename

30
推荐指数
3
解决办法
3万
查看次数

使用带有来自`util-linux`的`rename`版本的正则表达式

我正在使用该实用程序rename来自的 GNU/Linux 发行版,util-linux我想充分利用它的正则(Perl 或 POSIX)表达式。

两个版本rename

  • “Perl”版本,带语法 rename 's/^fgh/jkl/' fgh*
  • util-linux版本中,与语法rename fgh jkl fgh*

如果第一个正则表达式的使用似乎很明显,我无法轻松访问它。但是,我对第二个感到困惑:我找不到有关可能使用的任何相关文档或示例,在这种情况下,找不到要使用的正则表达式的格式。

让我们举一个简单的例子,一个包含以下内容的目录:

foo_a1.ext
foo_a32.ext
foo_c18.ext
foo_h12.ext
Run Code Online (Sandbox Code Playgroud)

我想使用类似这两行之一的语法:

rename "foo_[a-z]([0-9]{1,2}).ext" "foo_\1.ext" *
rename "foo_[:alpha:]([:digit:]{1,2}).ext" "foo_\1.ext" *
Run Code Online (Sandbox Code Playgroud)

预期输出为:

foo_1.ext
foo_32.ext
foo_18.ext
foo_12.ext
Run Code Online (Sandbox Code Playgroud)

这当然行不通!要么我遗漏了一些明显的东西,要么没有实现的方法可以在这个工具中使用实际的正则表达式。

(请注意,我知道在 shell 解释器中使用正则表达式重命名文件的其他可能性;这个问题针对该rename工具的特定版本。)

regex linux bash

8
推荐指数
1
解决办法
4248
查看次数

标签 统计

bash ×3

linux ×3

batch-file ×1

batch-rename ×1

grep ×1

numbers ×1

padding ×1

regex ×1

rename ×1

shell ×1