捕获一行中直到空格的所有内容的最佳方法是什么。例如,从这个:
>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/