假设我有字符串:
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
请问好吗?
非常感谢
答案 0 :(得分:1)
听起来像是awk
:
echo "$line" | awk '{ value=$NF; gsub(/[\(\)]/,"",value); print $1,$2,$3,$4,$5,$6,value }'
这将打印前6个字段,以及通过regexp删除括号后的最后一个字段。
答案 1 :(得分:1)
除了上述答案,使用Perl还可以使用:
$ echo "$line" | perl -lne 'print "$1 $2" if /(.*) -> .* \((.*)\)/'
答案 2 :(得分:0)
我会尝试像
这样的东西echo "$line" | sed -e 's/->.*(//' -e 's/)$//'
这应该有效...尽管它不是非常安全(例如,当你有20 words -> 1 char (value)
而不是6 words -> n words (value)
时,它不会抱怨)