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