在Linux下,结合使用perl语言,可以对文件进行批量的重命名,删除,移动等,感觉很6的样子,就拿笔记记下来。具体问题是这样的,在我的文件夹下,有一串文件,但是只有两个文件是我需要的,我意图把其他全部删除,除了x,y文件夹,如下
ls
3e48014d-ce4a-4937-bba4-13eaf631a64a a8f41106-633d-4027-9e1f-e73bfd48f11e
51423d79-e9c5-4c4d-b12c-99c1338dbd43 aa5eb12e-6074-442a-9ff8-281b921e7d96
5296cf00-4d8c-4db3-80d7-930a4b44f90d b22b85eb-2ca8-4c9f-a1cd-b77caab999bd
59a84472-27d4-497c-8f37-8bc447ff9374 bd3cdd86-a5ce-43dc-92b2-9c2c3105d1df
5d5dfadb-f18d-4f19-aff4-166dac7b92df c3df46a9-85d1-45d4-954a-825313d4a26d
64e23e2f-ec04-4f6b-82b3-375e2d49804b cc207fe8-ee0a-4b65-82cb-c8197d264126
6c93f518-1956-4435-9806-37185266d248 d12371d7-18ff-4105-a4a0-59de52b82805
76313658-c6df-4f73-8e04-affdbb0013bd d3fa70be-520a-420e-bb6d-651aeee5cb50
7837f512-39c2-4c7c-a338-43e51a54701c e3ad739d-6baa-4c42-a6f7-786d069239c1
81ac2c46-37db-4dcd-923a-061a7ae626a3 x
995c0111-d90b-4140-bee7-3845436c3b42 y
如果一个个用rm删除比较费时费力,就想到尝试利用perl语言!
ls | perl -alne 'if(/.{2,}/){print "rm -r $_"};' #{2,}匹配两个字符以上的文件夹
rm -r 3e48014d-ce4a-4937-bba4-13eaf631a64a
rm -r 51423d79-e9c5-4c4d-b12c-99c1338dbd43
rm -r 5296cf00-4d8c-4db3-80d7-930a4b44f90d
rm -r 59a84472-27d4-497c-8f37-8bc447ff9374
rm -r 5d5dfadb-f18d-4f19-aff4-166dac7b92df
rm -r 64e23e2f-ec04-4f6b-82b3-375e2d49804b
rm -r 6c93f518-1956-4435-9806-37185266d248
rm -r 76313658-c6df-4f73-8e04-affdbb0013bd
rm -r 7837f512-39c2-4c7c-a338-43e51a54701c
rm -r 81ac2c46-37db-4dcd-923a-061a7ae626a3
rm -r 995c0111-d90b-4140-bee7-3845436c3b42
rm -r a8f41106-633d-4027-9e1f-e73bfd48f11e
rm -r aa5eb12e-6074-442a-9ff8-281b921e7d96
rm -r b22b85eb-2ca8-4c9f-a1cd-b77caab999bd
rm -r bd3cdd86-a5ce-43dc-92b2-9c2c3105d1df
rm -r c3df46a9-85d1-45d4-954a-825313d4a26d
rm -r cc207fe8-ee0a-4b65-82cb-c8197d264126
rm -r d12371d7-18ff-4105-a4a0-59de52b82805
rm -r d3fa70be-520a-420e-bb6d-651aeee5cb50
rm -r e3ad739d-6baa-4c42-a6f7-786d069239c1
再bash以下上述命令
ls | perl -alne 'if(/.{2,}/){print "rm -r $_"};' | bash
ls
x y#只剩下我的目标文件了