切割键值对

Joh*_*ing 8 scripting text-processing

我正在寻找一种从文本中剪切键值对(其中键是唯一且指定的)的简单方法,就像如何cut用于剪切 CSV 文件中的指定列一样。我正在寻找的键并不总是在行中的相同相对位置——也就是说,使用cut后跟sed不会解决问题,因为我正在寻找的键并不总是在同一个,分隔列中.

有问题的文本确实是 CSV,但碰巧这些值是键/值对,以=.

例如,我可能会用以下三行来解析一个文件:

Foo=1, Bar=2, Baz=3
Bar=4, Foo=2, Baz=3
Bar=42, Baz=42, Foo=3
Run Code Online (Sandbox Code Playgroud)

我想剪切此文本以生成特定键的键/值对。如果我正在寻找Foo,那么我想要的输出将是:

Foo=1
Foo=2
Foo=3
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要一个命令行工具,它具有与 类似的语法cut,并且可以从标准输入和文件中读取。

有这样的工具吗?

jim*_*mij 11

grep可以使用以下-o选项执行此操作:

grep -o 'Foo=[^,]*' file
Run Code Online (Sandbox Code Playgroud)