搜索运算符?

搜索运算符?

我有一堆需要搜索的旧游戏 ROM。我需要的数据包含在括号中[]。例如,我可能正在搜索[b(with a number after)][a(with a number after)]。我尝试了通配符[b*],但似乎不起作用。

大家有什么提示吗?

编辑

问题是我想要尝试删除任何具有特定字符串的文件。例如 name_of_rom [b1].nes

所以我需要搜索任何带有 [b*] 的文件

答案1

例子

$ touch \[{a..z}{0001..0009}\]
rinzwind@schijfwereld:~/tmp$ ls
[a0001]  [c0009]  [f0008]  [i0007]  [l0006]  [o0005]  [r0004]  [u0003]  [x0002]
[a0002]  [d0001]  [f0009]  [i0008]  [l0007]  [o0006]  [r0005]  
...
[c0008]  [f0007]  [i0006]  [l0005]  [o0004]  [r0003]  [u0002]  [x0001]  [z0009]

然后:

$ ls \[[fn]*
[f0001]  [f0003]  [f0005]  [f0007]  [f0009]  [n0002]  [n0004]  [n0006]  [n0008]
[f0002]  [f0004]  [f0006]  [f0008]  [n0001]  [n0003]  [n0005]  [n0007]  [n0009]
$ ls \[*[48]*
[a0004]  [d0004]  [g0004]  [j0004]  [m0004]  [p0004]  [s0004]  [v0004]  [y0004]
[a0008]  [d0008]  [g0008]  [j0008]  [m0008]  [p0008]  [s0008]  [v0008]  [y0008]
[b0004]  [e0004]  [h0004]  [k0004]  [n0004]  [q0004]  [t0004]  [w0004]  [z0004]
[b0008]  [e0008]  [h0008]  [k0008]  [n0008]  [q0008]  [t0008]  [w0008]  [z0008]
[c0004]  [f0004]  [i0004]  [l0004]  [o0004]  [r0004]  [u0004]  [x0004]
[c0008]  [f0008]  [i0008]  [l0008]  [o0008]  [r0008]  [u0008]  [x0008]

[ 和 ] 用于集合,因此如果您想要搜索它们,则需要在 [ 和 ] 前面使用 \ 对它们进行转义。


[b*] 是搜索 ab 的集合:

~/tmp$ touch b111111
~/tmp$ touch bbbbb
~/tmp$ touch b
~/tmp$ ls [b*]
b
~/tmp$ ls b*
b  b111111  bbbbb

因此,与使用通配符的 ab 略有不同。将为“b*”,不带 [ 和 ],或者如果您想包含这些,则为“[b*]”。


当格式如下时:

name_of_rom[b1].nes

然后

ls *\[b[0-9]\[*
  • 第一个“*”将覆盖“name_of_rom”。基本上,前面的任何字符数...
  • \[b[0-9]\[[b0]涵盖[b9]
  • 如果第一个 0-9 后面还有更多内容,请在“]”后面使用“*”。(因此\[b[0-9]*\[
  • 最后一个“*”将覆盖 .nes。基本上是任意数量的字符。

我使用了“ls”,如果您得到了想要的结果,请将其替换为“rm”。

相关内容