如何删除以三个开头的行#
例如,需要删除以下所有行:from file
1 ### bla bla bal
2 ### blablabla
3 ### blabla
...
THX Yael
我编写了以下Perl脚本(如下所示)以创建简单的XML文件.生成的输出有效,但我对生成的XML源代码有特定的格式要求.
如何更改我的脚本以添加我想要的空白?
#!/usr/bin/perl
use warnings;
use XML::LibXML;
my $doc = XML::LibXML::Document->new;
my $root = $doc->createElement('LEVEL1');
$doc->setDocumentElement($root);
my $system = $doc->createElement('LEVEL2');
$root->appendChild($system);
my $install = $doc->createElement('LEVEL3');
$system->appendChild($install);
print $doc->toString;
Run Code Online (Sandbox Code Playgroud)
脚本输出:
<?xml version="1.0"?>
<LEVEL1><LEVEL2><LEVEL3/></LEVEL2></LEVEL1>
Run Code Online (Sandbox Code Playgroud)
期望的输出:
<?xml version="1.0"?>
<LEVEL1>
<LEVEL2>
<LEVEL3/>
</LEVEL2>
</LEVEL1>
Run Code Online (Sandbox Code Playgroud) 以下perl脚本(显示下)
打印以下XML文件,但XML有问题,因为在TEST字后面不必要的" "字符
<ROOT>
<FILE Name="TEST1 "/>
<FILE Name="TEST2 "/>
<FILE Name="TEST "/>ar
</ROOT>
Run Code Online (Sandbox Code Playgroud)
我认为" "字符是因为换行符(用反引号运算符读取命令输出到@myNames)似乎我的XML中现有" "的问题可以解决chomp命令
我的问题:在哪种方式需要在我的脚本中添加chomp命令以解决问题
我的perl脚本
#!/usr/bin/perl
use warnings;
use XML::LibXML;
my $doc = XML::LibXML::Document->new;
my $root = $doc->createElement('ROOT');
$doc->setDocumentElement($root);
my @myNames=` ls /var/tmp | grep FILE.xml | sed "s/.FILE.*//" `;
foreach (@myNames) {
my $objVar = $doc->createElement('FILE');
$root->appendChild($objVar);
$objVar->setAttribute('Name' , $_ );
}
my @lines = split /\n/, $doc->toString(1);
shift @lines;
foreach (@lines) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
/ var/tmp下的文件
TEST1-FILE.xml
TEST2-FILE.xml
TEST-FILE.xml
Run Code Online (Sandbox Code Playgroud) 我使用以下命令语法在我的脚本中搜索params
grep -qsRw -m1"any_param"/dir/..../
有时候搜索需要花费很长时间.问题是如何为grep命令添加时间
例如,20秒后,grep将会爆发
如果为grep添加时间不违法,那么在其他方面怎么可能呢?
THX Yael