我在目录中有20多个json文件,每个文件都有一个属性“ userType”,其值可以是customer或employee,我需要在此处创建2个zip文件customer.zip,其中将包含所有带有文本“ usertype”的文件: “客户”和employee.zip中剩余的json
我可以grep输入文本以获取文件名列表:
grep \"userType\":\"customer\" *.json
这给了我json文件列表,我应该如何将此列表传递给zip创建命令
答案 0 :(得分:2)
将grep -l
与xargs
一起使用:
grep -lZ '"userType":"customer"' *.json | xargs -0 zip customer.zip
和
grep -lZ '"userType":"employee"' *.json | xargs -0 zip employee.zip
PS:-Z
中的grep
选项在每个文件名之后输出一个NUL字节,并且xargs -0
读取NUL分隔的输入。这用于处理带有空格,换行符和glob字符的文件名。