搜索关键字外观并将输出直接输出到文件

时间:2013-07-02 08:43:27

标签: unix command-line

我希望在我的网站上找到关键字的外观。因此,例如,我在除.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;

有人能告诉我这些命令有什么问题/如何实现这个目标?

2 个答案:

答案 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

来自grep man-page

-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
}

除了轻微的语法错误之外,这至少应该指导你的目标