Печать имени каждого файла с определенным расширением - PullRequest
1 голос
/ 07 мая 2011

как я могу распечатать имя каждого файла в определенном каталоге с определенным расширением?

Вот что у меня есть:

#!/bin/sh

DIR="~/Desktop"
SUFFIX="in"

for file in $DIR/*.$SUFFIX
do
    if [ -f $file ]; then
    echo $file
    fi  
done

К сожалению, это не работает.

Что с ним не так?

Ответы [ 4 ]

6 голосов
/ 07 мая 2011

В вашем DIR = "~ / Desktop" "~" не развернуто, потому что оно в "".удалить "".DIR = ~ / Desktop

1 голос
/ 07 мая 2011

Вы можете использовать поиск с -type f

#!/bin/sh
DIR="~/Desktop"
SUFFIX="in"
find "$DIR" -maxdepth 1 -type f -name "*.${SUFFIX}" -exec somecommand {} \;
0 голосов
/ 07 мая 2011

Для справки: "file" в системах Unix обычно является именем команды.

Его цель - проанализировать файлы, указанные в качестве аргумента, и вывести формат. Пример:

$ file entries.jar 
entries.jar: Zip archive data, at least v2.0 to extract
0 голосов
/ 07 мая 2011
for file in `ls $DIR/*.$SUFFIX`

Обратите внимание на ls и галочки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...