仅在shell脚本中使用find命令匹配特定扩展名的问题

时间:2018-09-22 02:00:48

标签: shell perl

我想使用shell脚本和一些perl命令对目录中的XML文件列表进行一些更改。 这是perl命令的示例:

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

所有Perl命令都可以正常工作,但是问题是,shell脚本甚至可以自行执行命令,换句话说,当我运行shell脚本时,perl命令会更改所有其他XML文件的shell脚本!!! 注意:XML文件和Shell脚本位于同一目录中,并且不应位于命令的此部分:

 find "." -name "*.xml" 

仅匹配具有XML扩展名的文件!!!

有什么建议吗?!

2 个答案:

答案 0 :(得分:1)

您拥有通配符*,并且命令结尾!

答案 1 :(得分:0)

正如Red Cricket所指出的那样,您在命令末尾有一个<!DOCTYPE HTML> <html> <head> <link rel="shortcut icon" type="image/x-icon" href="Favicon.ico" /> <meta name="description" content="Allen Henderson's website"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> <title>HOME | Allen Henderson</title> </head> <body> <div id="logo-banner text-center"> <div id="logo"> <img src="img/navigation-bar-header-img.jpg" class="img-fluid" alt="top-image"/> </div> </div> <nav class="navbar navbar-expand-sm bg-primary navbar-dark" id="myNav"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Entertainment</a> </li> </ul> </nav> <div class="container-fluid"> <div class="row"> <div class="col-sm-12" id="main-content"> <h3>New Content I Have Added:</h3> <p id="text-content"></p> </div> </div> </div>摆脱掉了

此外,我建议使用*-exec

sed