捕获空白行中所有内容的最佳方法是什么。例如,从中:
>Peak_7847 Chr1 23988535_23998535
我想抓拍
Peak_7847
我试过了:
sed -e 's/^>\([^\s]\+\)\s.*$/\1/'
(不起作用,并在>
之后捕获整行)。如果我用\s
替换
“\ t”,它有效:
sed -e 's/^>\([^ \t]\+\)\s.*$/\1/'
Peak_7847
如何否定\s
运算符?
谢谢!
答案 0 :(得分:3)
您可以使用:
str='>Peak_7847 Chr1 23988535_23998535'
sed 's/^>\([^[:space:]]*\).*$/\1/' <<< "$str"
Peak_7847
答案 1 :(得分:1)
这可能适合你(GNU sed):
sed -r 's/(\S+).*/\1/' file
但为什么不呢:
sed 's/\s.*//' file