我有一个看起来像匹配使用grep并打印匹配的模式多种模式
..<long-text>..."field1":"some-value"...<long-text>...."field2":"some-value"...
..<long-text>..."field1":"some-value"...<long-text>...."field2":"some-value"...
..<long-text>..."field1":"some-value"...<long-text>...."field2":"some-value"...
我想从在bash文件的每一行中提取出来field1
和field2
文件。我希望field1和field2出现在每行的同一行中。所以输出应该喜欢 -
"field1":"some-value" "field2":"some-value"
"field1":"some-value" "field2":"some-value"
"field1":"some-value" "field2":"some-value"
我写了一个grep的表情像 -
grep -E '"field1":"[a-z]*".*"field2":"[a-z]*"' -o
但由于.*
之间,它产生这两个表达式之间所有的所有文本。我也试过
grep -E '"field1":"[a-z]*"|"field2":"[a-z]*"' -o
但是,这会输出所有field1s在单独的行,然后在单独的行中输出所有field2s。
如何获得预期的输出?