Выполнено с помощью Python:
#!/usr/bin/python
import re
k=open('p.txt','r')
for i in k:
print re.sub(",","\n",i).strip().replace(" ","")
выход
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
Проблема с вашим
find ${pwd} | grep 'Test.*zip'
заключается в том, что у вас нет переменной с именем pwd
. Так что это то же самое, что и find | grep 'Test.*zip'
. Вы хотите указать текущий каталог в качестве отправной точки.
Либо используйте $(pwd)
или $PWD
вместо ${pwd}
. $(pwd)
запускает программу pwd
, а $PWD
использует переменную, поддерживаемую bash
и другими оболочками POSIX, для указания текущего каталога. Не все оболочки являются POSIX. Вы также должны указать переменную или подстановку команды для защиты от необычных символов в пути к каталогу, так как в итоге вы получите
find "$PWD" | grep 'Test.*zip'
Пути, сообщаемые find
, всегда будут начинаться с пути поиска верхнего -уровня, под которым он был найден. Поэтому используйте абсолютный путь в качестве пути поиска:
find "$PWD" -name 'Test*zip'
Переменная PWD
будет содержать абсолютный путь к текущему каталогу.
GNU find
по умолчанию использует текущий каталог,.
("точку" ), в качестве пути поиска, если путь поиска не указан, и это то, что происходит в вашей ситуации, поскольку у вас нет переменной называется pwd
. Это означает, что все пути, которые проверяет find
, будут начинаться с точки. Большинство других реализаций вместо этого выдают ошибку, если путь поиска не указан :
$ unset pwd
$ find $pwd
usage: find [-dHhLXx] [-f path] path... [expression]
Да, но в вашем предложении нужно больше параметров (путь + файл + действие ), может быть, если вы структурируете свою команду следующим образом:
$> find {path} -iname {file} -exec {action} \;
Используйте команду readlink , чтобы получить абсолютный путь (в Linux и OS/X)
напр.
$> find./www/project/ -iname 'Test*.zip' -exec readlink -f {} \;
/opt/www/project/Test-5.2.0.11.zip
/opt/www/project/Test-5.2.0.13.zip