Find
在名稱的第二個位置查找具有特定字元的文件
如何找到具有這種模式的文件,例如
??11*
or??52*
,以兩個未知數字和兩個特定數字開頭,其他無關緊要。972966220_56_2_1_L2_P.jpg 971051472_69_2_1_L2_P.jpg 311952411_45_2_1_L2_P.jpg 150221433_0_2_1_L2_P.jpg 363117383_0_2_1_L2_P.jpg 190638610_78_2_1_L2_P.jpg 752944572_42_2_1_L2_P.jpg 253138391_61_2_2_L2_P.jpg 841542999_33_1_1_L1_P.jpg 911539144_72_2_1_L2_P.jpg 741545726_38_2_1_L2_P.jpg 143145435_70_2_1_L2_P.jpg 742956510_40_2_1_L2_P.jpg 683275391_42_2_2_L2_P.jpg 773278422_0_2_1_L2_P.jpg 732877320_69_2_2_L2_P.jpg 562472955_48_2_1_L2_P.jpg 871074372_81_2_1_L2_P.jpg 582113611_18_2_2_L2_P.jpg 351728725_61_2_1_L2_P.jpg 662989573_0_2_1_L2_P.jpg 482146746_26_2_2_L2_P.jpg 140657988_48_2_1_L2_P.jpg 571769896_56_2_2_L2_P.jpg 142414844_33_2_1_L2_P.jpg 641513381_72_2_1_L2_P226.jpg 571769896_0_2_1_L2_P.jpg 231514166_60_2_1_L2_P.jpg 653099122_37_2_1_L2_P.jpg 370649838_41_2_2_L2_P.jpg 712937376_34_2_1_L2_P.jpg 790498538_64_2_1_L2_P.jpg 193178710_35_2_1_L2_P.jpg 792887777_106_2_1_L2_P.jpg 611926710_49_2_1_L2_P.jpg 280234330_70_2_1_L2_P.jpg 613034344_44_2_1_L2_P.jpg 461587572_93_2_1_L2_P.jpg
find -name
可以使用??11*
or??52*
。這不是正則表達式,但可能就足夠了。find . -name '??11*' -o -name '??52*'
注意
?
可以匹配非數字。要匹配數字,請使用[0123456789]
. 形式[[:digit:]]
或[0-9]
通常有用,但取決於語言環境。我可以0123456789
肯定地看到有問題的文件名使用,所以[0123456789]
是最好的選擇。例子:find . -name '[0123456789][0123456789]11*' -o -name '[0123456789][0123456789]52*' # or LC_ALL=C find . -name '[0-9][0-9]11*' -o -name '[0-9][0-9]52*'
但是,您提供的文件名之間沒有一個匹配項。