搜索字母“o”和编号6的文件

时间:2013-03-14 21:05:41

标签: linux bash

我有一个包含大约2,000个文件的目录,其中包含各种文件名。

我需要打印出包含字母o的所有文件名,并在o的右边有6个空格。例如:

flow6,tro168,arrow6ish。

我会使用类似于:

的东西
find -name 'o*6'

2 个答案:

答案 0 :(得分:3)

请不要解析ls输出(如前面线程中所建议的那样),而是试试这个:

printf '%s\n' *o?6*

示例:

$ ls -1
arrow6ish
flow6
o6
oaaaaaaaaa6
tro168

$ printf '%s\n' *o?6*
arrow6ish
flow6
tro168

如果您需要对结果运行命令the simplest is

commandX *o?6*

这就是所有的魔术。

如果您需要递归,请使用

find . -type f -name '*o?6*'

ls是用于交互式查看文件信息的工具。它的输出格式化为人类,并将导致脚本中的错误。使用globs或代替。了解原因:http://mywiki.wooledge.org/ParsingLs


详细了解glob s

答案 1 :(得分:1)

find . -name "*o?6*"

应该达到你想要的。如果文件包含在嵌套子目录中,这比printf解决方案更可取。