Ajuda com um IF e SED para substituir \ n

0

Eu tenho uma variável de nome de arquivo que às vezes é definida como:

attachment; 
JobRunStatisticsReport_20150122.zip

Na janela do Gerenciador de arquivos, é assim:

Preciso de ajuda com uma declaração IF que diga:

IF $ filename contém 'anexo; \ n ' então

e, em seguida, ajude com um SED que procura esse novo caractere de linha (\ n) e substitui isso e tudo antes sem nada.

Alguém pode dar uma mão rápida, por favor?

    
por BeMy Friend 30.01.2015 / 20:38

1 resposta

2

Seu nome de arquivo na verdade contém um retorno de carro e uma nova linha. A expansão do parâmetro bash pode lidar com isso:

$ filename=$'attachment;\r\nJobRunStatisticsReport_20150122.zip'
$ echo "$filename"
attachment;
JobRunStatisticsReport_20150122.zip
$ shopt -s extglob
$ echo "${filename##attachment;*([[:space:]])}"
JobRunStatisticsReport_20150122.zip

Não afeta nomes de arquivos "normais":

$ filename="no attachment here"
$ echo "${filename##attachment;*([[:space:]])}"
no attachment here
    
por glenn jackman 30.01.2015 / 22:22