如何在Unix中拆分字符串并提取列

时间:2013-05-14 19:29:24

标签: unix extract

假设我有字符串:

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

请问好吗?

非常感谢

3 个答案:

答案 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)时,它不会抱怨)