Проблема с сопоставлением определенного расширения только с помощью команды find в сценарии оболочки - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу внести некоторые изменения в список файлов XML в каталоге, используя скрипт оболочки и некоторые команды perl.Вот пример команд perl:

find "." -name "*.xml" | xargs perl -pi -e 's/\s+/ /g' *

Все команды Perl работают нормально, но проблема в том, что сценарий оболочки выполняет команды даже над собой, другими словами, когда я запускаю сценарий оболочки,Команды perl изменяют сценарии оболочки со всеми другими файлами XML !!!ПРИМЕЧАНИЕ: XML-файлы и сценарий оболочки находятся в одном каталоге, и эта часть команды не должна:

 find "." -name "*.xml" 

соответствовать только файлам с расширением XML !!!

любые предложения, пожалуйста?!

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Как отмечает Red Cricket, у вас есть * в конце вашей команды, избавьтесь от этого .

Кроме того, я рекомендую использовать -exec и sed:

find -name '*.xml' -exec sed 's/\s\+/ /g' {} \;
0 голосов
/ 22 сентября 2018

У вас есть подстановочный знак * и конец команды!

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