如果第一个单词以5个大写字母开头,我有兴趣检索该单词。例如,如果一个句子是SOLAR eclipse
,则需要SOLAR
。如果句子是SOLA eclipse
或solar ECLIPSE
或40 thieves
,则无。
printf "SOLAR eclipse\nSOLA eclipse\nsolar ECLIPSE\n40 thieves" | sed 's/\(^[A-Z]\{5\}\).*/\1/'
SOLAR
SOLA eclipse
solar ECLIPSE
40 thieves
如我们所见,提取仅适用于第一句话。我曾期望它会为第二,第三和第四位返回空字符串,但是它将返回整个字符串。
使用grep
$printf "SOLAR eclipse\nSOLA eclipse\nsolar ECLIPSE\n40 thieves" | grep -oE '^[A-Z]{5}'
SOLAR
$
[使用awk
,您也可以尝试下面的方法。
printf "SOLAR eclipse\nSOLA eclipse\nsolar ECLIPSE\n40 thieves" | awk 'match($0,/^[A-Z]{5}/){print substr($0,RSTART,RLENGTH)}'