将所有特定模式的记录记录在单独的文件中

时间:2015-02-05 09:20:55

标签: linux bash shell

我有一个包含以下数据的文件:

"ItemList":  
  "Resource" : "6"  
  "ResourceIdentifier" : "12345"  
  "ResourceEventTime" : "2015-01-20T10:51:39Z"  
  "ResourceIdentifier" : "12345"  
  "ResourcePosition" : "2"  
  "Resource" : "7"  
  "ResourceIdentifier" : "12345"  
  "ResourceEventTime" : "2014-01-20T10:51:39Z"  
  "ResourceIdentifier" : "12345"  
  "ResourcePosition" : "17"  

是否可以在单独的文件中检索以“Resource”开头的所有模式,直到“ResourcePosition”,如< - p>

File1

"Resource" : "6"  
"ResourceIdentifier" : "12345"  
"ResourceEventTime" : "2015-01-20T10:51:39Z"  
"ResourceIdentifier" : "12345"  
"ResourcePosition" : "2"  

File2

"Resource" : "7"  
"ResourceIdentifier" : "12345"  
"ResourceEventTime" : "2014-01-20T10:51:39Z"  
"ResourceIdentifier" : "12345"  
"ResourcePosition" : "17"  

我尝试使用

cat FormattedJsonStructure | grep -m 1 -A 5 Resource

有了这个,我得到了第一个模式。为了得到下一个模式我试过

cat FormattedJsonStructure | grep -m 2 -A 5 Resource

但它给了我连续的模式。

1 个答案:

答案 0 :(得分:0)

split命令可用于制作单独的文件:

grep FormattedJsonStructure --no-group-separator -A 4 -e "Resource" > AllResource
split -l 5 AllResource Resource

请注意,-A 4与匹配的行共同表示5行。