[英]Grep and cut command in putty terminal
I'm trying to cut a specific line from several files. 我正在尝试从多个文件中剪切特定的行。 I have about 300 json files.
我有大约300个json文件。
file structure:
{
"FieldName1": "XXXX",
"FieldName2": "1",
"FieldName3": "XXX",
"FieldName4": "XXX",
"FieldName5": "1",
.
.
.
}
,
{
"FieldName1": "XXXX",
"FieldName2": "2",
"FieldName3": "XXX",
"FieldName4": "XXX",
"FieldName5": "2",
.
.
.
}
some of the files are written in one row: 有些文件写在一行中:
{"FieldName1": "XXXX", "FieldName2": "3", "FieldName3": "XXX", "FieldName4": "XXX", "FieldName5": "3"}, {"FieldName1": "XXXX", "FieldName2": "4", "FieldName3": "XXX", "FieldName4": "XXX", "FieldName5": "4"}, ...
}
What i need to get in my output file is just a list of 2 fields from the files : 我需要在输出文件中获取的只是这些文件中2个字段的列表:
"FieldName1": "1",
"FieldName2": "1",
"FieldName1": "2",
"FieldName2": "2",
"FieldName1": "3",
"FieldName2": "3",
"FieldName1": "4",
"FieldName2": "4",
.
.
.
Is there an easy way to do so? 有一个简单的方法吗?
Thanks! 谢谢!
For the single line, you can use this gnu awk
(do to multiple characters in RS) 对于单行,可以使用此
gnu awk
(在RS中执行多个字符)
awk -v RS='"FieldName' 'NR>1 {sub(/, "/,",");print RS$0}' file
"FieldName1": "XXXX",
"FieldName2": "3",
"FieldName3": "XXX",
"FieldName4": "XXX",
For multiple line use grep
or awk
like this: 对于多行,请使用
grep
或awk
如下所示:
awk '/FieldName/' file
"FieldName1": "XXXX",
"FieldName2": "1",
"FieldName3": "XXX",
"FieldName4": "XXX",
"FieldName5": "1",
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.