否定字符类中的空格正则表达式


捕获

所有内容的最佳方法是什么,直到空格。例如,从这个:

>Peak_7847       Chr1    23988535_23998535

我想捕捉

Peak_7847

我试过了:

sed -e 's/^>([^s]+)s.*$/1/'

(这不起作用,并在>后捕获整行)。如果我s替换为" \t",它有效:

sed -e 's/^>([^ t]+)s.*$/1/'
Peak_7847

如何否定s运算符?

谢谢!

您可以使用:

str='>Peak_7847       Chr1    23988535_23998535'
sed 's/^>([^[:space:]]*).*$/1/' <<< "$str"
Peak_7847

这可能对你有用(GNU sed):

sed -r 's/(S+).*/1/' file

但为什么不呢:

sed 's/s.*//' file

相关内容

  • 没有找到相关文章

最新更新