nome_do_arquivo inicie com *

2

Eu tenho script, ele deve passar por arquivos para obter linhas específicas deles. O nome do arquivo é obtido a partir da variável, por exemplo, $ FILENAME e temos essa situação:

cat / path / $ FILENAME

mas quando FILENAME==*.some.file existe um problema. O arquivo *.some.file realmente existe, mas cat lista todos os arquivos por máscara *.some.file ( first.some.file second.some.file *.some.file fourth.some.file e assim por diante) aspas simples no caminho previnem a inclusão da variável.

Alguma ideia de como cat (ou grep ) apenas um *.some.file ?

    
por Dimitry Kuryanovich 01.02.2011 / 12:08

3 respostas

6

Use aspas duplas. Isso expandirá a variável, mas não os curingas incorporados.

cat /path/"$FILENAME"
    
por 01.02.2011 / 12:11
3
cat "/path/to/$FILENAME"

não expandirá * para uma glob.

    
por 01.02.2011 / 12:10
2

cat \*.some.file escapará do * , por isso é tratado como um caractere literal.

Além disso, cat '*.some.file' terá um efeito semelhante. Em ambos os casos, evita que o bash expanda o * para uma lista de arquivos correspondentes.

    
por 01.02.2011 / 12:11

Tags