Como remover o nome do arquivo usando o SED

0

Eu tenho uma variável g_inboundDir que contém o valor '/ tmp / AI_INBOUND'.
Agora, eu preciso ler os arquivos no diretório apontado pela variável 'g_inboundDir' e depois trabalhar com os arquivos. Diretório '/ tmp / AI_INBOUND' contém arquivos a.pdf, b.pdf c.pdf etc.

NOTA: Eu não quero mudar meu diretório atual para '/ tmp / AI_INBOUND'

Eu escrevi o seguinte código:

for i in 'ls ${g_inboundDir}/*.pdf 2>/dev/null'
do
    j='echo $i | sed   "s/${g_inboundDir}//"';
    echo $j;
done;

Eu esperava que echo $j me fornecesse o nome do arquivo, mas estou recebendo um erro no comando sed.

    
por AlluSingh 09.07.2017 / 20:59

1 resposta

3

Você não precisa alcançar sed para isso:

for i in "${g_inboundDir}"/*.pdf
do
   echo "${i##*/}"; # will give u the filename
   # aliter:
   echo "${i}" | sed -e 's|.*/||' ;# will give the filename via sed as u wanted
done
    
por 09.07.2017 / 21:05