我有一个包含嵌入在句子中的概率的大型文本文件。我想提取仅这些概率和它们之前的文本。例如
输入:
需要的输出:
我目前所拥有的:
这段代码会在匹配时重复分割行,并尝试仅在包含匹配项时打印。我的问题似乎是当一行结束后,保留空间没有清除。
总体问题是sed不能进行非贪婪匹配,而我的分隔符可以是任何字符。
我猜用其他语言的解决方案也可以,但现在我很想知道是否可以在sed中实现?
输入:
not interesting
foo is 1 in 1,200 and test is 1 in 3.4 not interesting
something else is 1 in 2.5, things are 1 in 10
also not interesting
需要的输出:
foo is 1/1,200
and test is 1/3.4
something else is 1/2.5,
things are 1/10
我目前所拥有的:
$ sed -nr ':a s|(.*) 1 in ([0-9.,]+)|\1 1/\2\n|;tx;by; :x h;ba; :y g;/^$/d; p' input
foo is 1/1,200
and test is 1/3.4
not interesting
something else is 1/2.5,
things are 1/10
something else is 1/2.5,
things are 1/10
这段代码会在匹配时重复分割行,并尝试仅在包含匹配项时打印。我的问题似乎是当一行结束后,保留空间没有清除。
总体问题是sed不能进行非贪婪匹配,而我的分隔符可以是任何字符。
我猜用其他语言的解决方案也可以,但现在我很想知道是否可以在sed中实现?
x in y
->x/y
。它解决了我遇到的困难;我只是在那之后添加了另一个 sed 调用。我将接受的答案改为另一个。 - phiresky\1
和\2
代替&
。 - Birei