我有一堆需要搜索的旧游戏 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”。