Linux 使用awk/sed/cut/grep从文本文件中提取冒号分隔的字段/值

Linux 使用awk/sed/cut/grep从文本文件中提取冒号分隔的字段/值,linux,bash,parsing,split,Linux,Bash,Parsing,Split,我想从文本文件中提取一些成对的分隔字段/值,它们可能出现在一行或一段中的任何位置。该文件可能包含多个长或短段落。我希望输出为每个文件仅一行或每个事件一行。我已经执行了几个选项,在这些选项中,我成功地获得了字段名的第一个匹配项或第二个匹配项,但不是两个。我可以在一次“通过”中获得N个字段名,然后我需要为以下带有订单相关问题的字段名运行第二个字段名。 有什么建议可以在一行命令中完成吗 Text File 1 Lorem ipsum dolor sit amet, consectetur adipis

我想从文本文件中提取一些成对的分隔字段/值,它们可能出现在一行或一段中的任何位置。该文件可能包含多个长或短段落。我希望输出为每个文件仅一行或每个事件一行。我已经执行了几个选项,在这些选项中,我成功地获得了字段名的第一个匹配项或第二个匹配项,但不是两个。我可以在一次“通过”中获得N个字段名,然后我需要为以下带有订单相关问题的字段名运行第二个字段名。 有什么建议可以在一行命令中完成吗

Text File 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed faucibus orci justo, quis faucibus arcu scelerisque molestie. 
Curabitur :Field1 Value1: lacus at scelerisque :Field2 Value2: aliquam. Aenean mattis elit et magna volutpat, eu finibus justo cursus. 
Etiam non cursus nisi. Donec urna nulla, convallis ut velit sit amet, accumsan faucibus urna. :Field1 Value2: lacinia lectus :Field3 Value2: bibendum ligula dictum gravida. Duis eget metus sed lorem scelerisque varius. 

Text File 2
Duis leo sem, placerat eget :Field3 Value1: volutpat eget, condimentum at odio. Ut iaculis tincidunt massa, in :Field1 Value2: accumsan nulla bibendum quis. Sed tincidunt justo sit amet est bibendum mollis. Fusce gravida nunc a nibh blandit ullamcorper. Aliquam auctor laoreet pellentesque :Field1 Value1:
Quisque tempor ultrices congue.
Mauris feugiat est sed neque malesuada tincidunt. Pellentesque fringilla, nunc vitae porta tempor, mauris felis ultricies eros, ac hendrerit lacus odio et nisi. Vivamus cursus lacinia nunc, a mollis mi hendrerit a. Nunc commodo dui nec iaculis fringilla.

Desired output for Text File 1

FieldName1 Value2 FieldName2 Value2  FieldName1 Value1  FieldName3 Value2

FieldName1 Value2   
FieldName2 Value2
FieldName1 Value1
FieldName3 Value2

Desired output for Text File 2

FieldName3 Value1  FieldName1 Value2  FieldName1 Value1

FieldName3 Value1
FieldName1 Value2
FieldName1 Value1

如果使用冒号作为字段分隔符,您会发现占位符是偶数字段:

awk -F: '{for (i=2; i<=NF; i+=2) print $i}' file

awk-F:'{for(i=2;我来看看堆栈溢出!到目前为止你尝试了什么?你能告诉我们你的尝试吗?请避免“给我代码”的问题,这些问题已经被问了很多次,你必须努力避免找到答案。相反,请显示你正在处理的脚本并说明问题所在。另请参阅