Para exatamente a configuração fornecida, tente
sed 's/^.*FROM //; s/\..*$//' file
Eu tenho esta string onde eu quero procurar por uma palavra-chave e, em seguida, retornar a seguinte palavra.
"SELECT \"city\",\"temp_lo\",\"temp_hi\",\"date\" FROM schema_name.\"weather_7\""
Eu quero retornar "schema_name" e o único texto indicador é a string "FROM" anterior.
Obrigado
Supondo que schema_name
consista em uma sequência de caracteres de palavras , se o seu grep suportar expressões regulares compatíveis com Perl (PCRE), você pode usar
grep -Po 'FROM\s+\K\w+'
Ex.
echo '"SELECT \"city\",\"temp_lo\",\"temp_hi\",\"date\" FROM schema_name.\"weather_7\""' |
grep -Po 'FROM\s+\K\w+'
schema_name