【发布时间】:2021-10-15 15:07:56
【问题描述】:
我有一个目录包含文本文件,其中包含如下原始 http 请求
POST /test HTTP/1.1
Host: host.com
Content-Type: application/x-www-form-urlencoded
Accept-Language: en-US, gHNEY;q=0.9, *;q=0.5
Accept-Charset: utf-8, iso-8859-1;q=0.5, 3AG19;q=0.2, *;q=0.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5)
Accept: */*, text/XppPa
param1=ffff&
如您所见,名为 2b0c9d9254abb4a775023177380c2598.txt 的文件是 url 的 md5sum,现在情况并非如此,但我想提一下
我想要的是搜索 not containing parameters 的文件并将其删除,这样该目录中的其余文件将仅是包含参数的文件
我尝试的是在那些包含参数的文件中找到 grep 唯一值,我发现常见的是 char &,它写在参数值旁边
所以我尝试了以下命令并没有工作
grep -lrIvE '&' . | xargs -0 rm -f --
结果是
./2b0c9d9254abb4a775023177380c2598.txt'$'\n': File name too long
当我在 grep 中添加大写 Z 时,删除了所有文件
所以无论如何都可以这样做,如果我可以过滤包含唯一参数的请求(文件),那就太好了
谢谢
【问题讨论】:
-
如果没有
grep的-Z选项,则不能使用xargs的-0选项。这是行不通的。你的问题是grep -v匹配所有不包含&的行。而且您的所有文件都至少有一个。