我有一个包含大约2,000个文件的目录,其中包含各种文件名。
我需要打印出包含字母o的所有文件名,并在o的右边有6个空格。例如:
flow6,tro168,arrow6ish。
我会使用类似于:
的东西find -name 'o*6'
答案 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
解决方案更可取。