在shell脚本中使用#标签匹配所有单词

时间:2013-06-19 18:45:44

标签: bash shell sh

任何人都可以使用shell脚本快速提取给定句子中的所有主题标签。

例如: 'This is a #test that will #allow me to #remove stuff'会返回#test #allow #remove

2 个答案:

答案 0 :(得分:6)

您可以尝试egrep -o '#[^ ]+'。输出应如下所示:

#test
#allow
#remove

答案 1 :(得分:2)

只是提供awk的替代方案:

awk '{for (i=1; i<=NF; i++) if ($i ~ /^#/) print $i}'

这是提取这些数据的纯BASH方法:

x=$str # your original string
while :; do
   if [[ $x =~ (\#[a-z]+)(.*)$ ]]; then
      echo "${BASH_REMATCH[1]}"
      x="${BASH_REMATCH[2]}"
   else
      break
   fi
done