regex - 否定字符类中的空白正则表达式

标签 regex sed

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

>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

关于regex - 否定字符类中的空白正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711060/

相关文章:

javascript - 用前缀替换外括号

jquery - 改进了使用正则表达式替换的性能

bash - 如何删除以反斜杠开头的任何字符串?

用于多个输出文件的 Bash 脚本

unix - 如何在 Unix 中删除文件中的重复行而不对其进行排序

删除某些行需要 REGEX 帮助

regex - R:使用 POSIX 正则表达式从字符串中提取数据

java - 正则表达式吃得太多了

awk - 使用 Sed 或 Awk 进行数据转换 - 名称到标题

linux - SED:摘自谷歌财经