2014-10-14 4 views
0

Если у меня есть папка под названием MyFiles/который имеет кучу питон файлов в ней, в сценарии оболочки, как в следующем:Unix - получить подстроку имени файла

for k in myfiles/*.py 
do 
// code here? 
done 

Как напечатать для каждого Ка строка это всего лишь --name-of-file--.py? Если я

echo $k 

как есть, он печатает myfiles/--name-of-file--.py

Я новичок в языке сценариев командной оболочки, но это, кажется, как функция вырезать пытается вырезать содержимое файла, а не только файл имя (и я действительно не знаю, как использовать разрез).

Чтобы быть ясным, я хотел бы знать, как избавиться от имени папки при печати.

ответ

2
basename "$k" 

Или, если вы хотите, чтобы избежать порождая так много процессов, это более эффективно:

echo ${k##*/}