创建包含特定文本的文件的zip文件

时间:2018-10-23 17:08:38

标签: linux shell

我在目录中有20多个json文件,每个文件都有一个属性“ userType”,其值可以是customer或employee,我需要在此处创建2个zip文件customer.zip,其中将包含所有带有文本“ usertype”的文件: “客户”和employee.zip中剩余的json

我可以grep输入文本以获取文件名列表:

grep \"userType\":\"customer\" *.json

这给了我json文件列表,我应该如何将此列表传递给zip创建命令

1 个答案:

答案 0 :(得分:2)

grep -lxargs一起使用:

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字符的文件名。