Você se esqueceu de citar o operador [[:space:]]
glob e está usando um shell como csh
, tcsh
, fish
(embora fish
não suporte [...]
glob operadores), zsh
, bash -O failglob
(provavelmente (t)csh
dada a mensagem de erro) que (corretamente) falha o comando quando uma glob falha ao combinar.
tcsh
não reconhece as classes de caracteres [:space:]
POSIX, mas s/=[[:space:]]0/-180/
ainda é reconhecido como glob.
Após um mkdir -p 's/=a]0/-180'
, o glob corresponderia. Esse s/=[[:space:]]0/-180/
seria expandido para s/=a]0/-180/
e você não receberia o erro No match
.
Em vez disso, aqui, você quer citar que o shell não deve considerá-lo como um padrão glob e passar a string literalmente para sed
.
(Aqui, também estou adicionando o *
ausente para permitir 0 ou mais caracteres de espaçamento no padrão e o =
ausente na substituição):
sed 's/=[[:space:]]*0/=-180/'
Ou para preservar o espaçamento original:
sed 's/\(=[[:space:]]*\)0/-180/'