0

假设我有字符串:

au sujet de l article card -> your advice about rule (0.000000082860230)
au sujet de l article card -> would therefore like some (0.000000082860230)

一般是这样的:

 6 words -> n words (value)

我正在寻找一个想法来提取具有这样值的 6 个单词,例如

 au sujet de l article card 0.000000082860230
 au sujet de l article card 0.000000082860230

请问有什么想法吗?

非常感谢

4

3 回答 3

1

听起来像是一份工作awk

echo "$line" | awk '{ value=$NF; gsub(/[\(\)]/,"",value); print $1,$2,$3,$4,$5,$6,value }'

这将打印前 6 个字段,以及通过正则表达式删除括号后的最后一个字段。

于 2013-05-14T19:36:34.830 回答
1

除了上述答案之外,您还可以使用 Perl:

$ echo "$line" | perl -lne 'print "$1 $2" if /(.*) -> .* \((.*)\)/'
于 2013-05-14T19:37:35.683 回答
0

我会尝试类似的东西

echo "$line" | sed -e 's/->.*(//' -e 's/)$//'

20 words -> 1 char (value)这应该可以工作......尽管它不是很安全(例如,当你有而不是时它不会抱怨6 words -> n words (value)

于 2013-05-14T19:34:10.523 回答