我希望在我的网站上找到关键字的外观。因此,例如,我在除.pdf之外的所有文件中搜索“数字货币”。我想将结果(文字出现的文件名)输出到文件,并在可能的情况下在该文件中的每个条目后添加一个新行。
添加显示结果的行号也很棒,但一次只能做一件事。
我把两个命令混合在一起试图接近这个,这两个命令都没有按预期工作。
grep -rl "Digital Currency" --exclude "*.pdf" >> wordcount-digital-currency.txt
find /home/ukglobal/public_html/ -exec grep -H -r -n 'Digital Curency' "*.html" --exclude "*.pdf" {} \ >> wordcount-digital-currency.html;
有人能告诉我这些命令有什么问题/如何实现这个目标?
答案 0 :(得分:1)
这就够了:
grep -nr "Digital Currency" --exclude "*.pdf" \
--exclude wordcount-digital-currency.txt > wordcount-digital-currency.txt
如果要排除匹配的行,请使用cut
:
grep -nr "Digital Currency" --exclude "*.pdf" | \
cut -d: -f1,2 > wordcount-digital-currency.txt
-l, --files-with-matches
Suppress normal output; instead print the name of each input
file from which output would normally have been printed. The
scanning will stop on the first match. (-l is specified by
POSIX.)
答案 1 :(得分:0)
搜索文件中字符串SEARCH_STRING的出现位置并将文件名写入另一个文件NEW_FILE_NAME
for i in `ls -1tr`
{
SEARCH_STRING_LINE_NO=`grep -n SEARCH_STRING i | cut -d: -f1`;
if [ SEARCH_STRING_LINE_NO > 0 ] then
FILE_NAME >> NEW_FILE_NAME
fi
}
除了轻微的语法错误之外,这至少应该指导你的目标