0

我正在寻找在我的网站上出现的关键字。因此,例如,我在除 .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;

谁能告诉我这些命令有什么问题/如何实现?

4

2 回答 2

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

grep 手册页

-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.)
于 2013-07-02T08:48:28.267 回答
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
}

除了轻微的语法错误,这至少应该引导你实现你的目标

于 2013-07-02T15:13:06.597 回答