我需要創建一個perl腳本,該腳本將搜索給定目錄並查找包含特定字符串的所有txt文件。我想要perl腳本然後打印這些文件的位置。到目前爲止,我已經完成了這項任務,但我想爲腳本添加更多功能。搜索目錄中包含特定字符串和打印位置的文件
這是我到目前爲止有:
#!/usr/bin/perl
use strict;
use warnings;
use File::Find;
my $dir ='C:\path\to\dir';
my $keyword = "apple";
find(\&txtsearch, $dir);
sub txtsearch {
if(-f $_ && $_ =~ /\.txt$/) {
open my $file, "<", $_ or do {
warn qq(Unable to open "$File::Find::name": $!); #checks permissions
return;
};
while(<$file>) {
if (/\Q$keyword\E/) {
print "$File::Find::name\n"; #prints location of file
return; #stops searching once found
}
}
}
}
現在我想添加幾件事情:首先 ,我想包括一種方法,在搜索中包含大小寫。例如,如果我想查找單詞「apple」的所有實例,我不希望它忽略「Apple」或「APPLE」的任何用法。
我也想成爲蘋果在命令行輸入關鍵字,而不是實際的腳本本身。
另外,是否有可能讓腳本在名爲「output.txt」的指定目錄中創建一個文件,並將腳本的輸出導入到該文件中?我知道一個命令行,你必須有> output.txt,但我不完全確定如何在腳本中實現它。
最後,如果我可以在文件中包含字符串出現次數的打印輸出,那將會很好。例如,如果單詞「蘋果」在文本文件中出現5次,我希望看到文件位置的輸出,並且還有類似「蘋果在FILE.txt中出現5次」的內容
感謝你這麼多的幫助!
我發現短語「到目前爲止,我已經完成了這項任務」,再加上perl 101個問題,以及腳本中使用的內建和關鍵字,它們既可疑又有趣 – Gabs00
一方面,您因嘗試查找而受到讚揚一個你想要的東西的腳本。另一方面,誠實地承認你找到了別人的腳本,但不明白它是如何工作的,因此無法理解如何添加即使是最基本的功能也會產生更多的善意和更少的負面反應。 – DVK
我很抱歉,我的意思並不是暗示我自己寫了整個劇本,而是借用了幾個完成相同內容的劇本的屬性。我的問題是基於更多關於修改腳本並添加更多功能的問題。我是一個完整的新手,並希望學習Perl,我理解非常基礎知識,但通過實例學習。任何腳本部分的任何功能的解釋將不勝感激。非常感謝,如果我錯了! – user3646369