首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux查找脚本结果未附加到输出文本文件

Linux查找脚本结果未附加到输出文本文件
EN

Stack Overflow用户
提问于 2018-06-14 04:37:21
回答 1查看 255关注 0票数 0

我写了一个小的shell脚本,用来识别我网站中的PDF文件关联页面。

它是一个的pdf源列表网址,作为一个输入和发现递归的网站内容。

问题是,当我运行脚本查找结果时,没有附加到输出文件中,但是当我接受find命令并在终端/putty中手动运行时,可以看到结果。

剧本:

代码语言:javascript
运行
复制
#!/bin/bash
filename="PDF_Search_File.txt"
while read -r line
do
        name="$line"
                echo "*******pdf******** - $name\n" >>output_pdf_new.txt
        find . -type f -exec grep -l "$name" '{}' \; >>output_pdf_new.txt
                echo "*******pdf******** - $name\n" >>output_pdf_new.txt
done < "$filename"

源列表url输入文件(PDF_Search_File.txt)

代码语言:javascript
运行
复制
/static/pdf/pdf1.pdf
/static/pdf/pdf2.pdf
/static/pdf/pdf3.pdf
--------------------

输出结果文件(output_pdf_new.txt)

代码语言:javascript
运行
复制
./Search_pdf.sh
*******pdf******** - /static/pdf/pdf1.pdf\n
*******pdf******** - /static/pdf/pdf1.pdf\n
./Search_pdf.sh
*******pdf******** - /static/pdf/pdf2.pdf\n
*******pdf******** - /static/pdf/pdf2.pdf\n
./Search_pdf.sh
*******pdf******** - /static/pdf/pdf3.pdf\n
*******pdf******** - /static/pdf/pdf3.pdf\n
------------------------------------------

当手动运行查找时,终端/putty可以看到下面的结果。

代码语言:javascript
运行
复制
find . -type f -exec grep -l "/static/pdf/pdf1.pdf" '{}' \;

./en/toyes/zzz/index.xhtml
./en/toyes/kkk/index.xhtml
--------------

但是由于脚本有问题,只能输出与上面的输出结果相同的回显结果。

更新当我使用bash -x执行脚本时,它给出了以下结果

代码语言:javascript
运行
复制
[user@server1 generated_content]# bash -x Search_pdf.sh
+ filename=PDF_Search_File.txt
+ read -r line
+ name=$'/static/pdf/pdf1.pdf\r'
\n'cho '*******pdf******** - /static/pdf/pdf1.pdf
+ find . -type f -exec grep -l $'/static/pdf/pdf1.pdf\r' '{}' ';'
\n'cho '*******pdf******** - /static/pdf/pdf1.pdf
+ read -r line
+ name=$'/static/pdf/pdf2.pdf\r'
\n'cho '*******pdf******** - /static/pdf/pdf2.pdf
+ find . -type f -exec grep -l $'/static/pdf/pdf2.pdf\r' '{}' ';'

这里有什么问题吗?

代码语言:javascript
运行
复制
  + find . -type f -exec grep -l $'/static/pdf/pdf2.pdf\r' '{}' ';'

find命令应该如下所示,但它在执行时与上面一样

代码语言:javascript
运行
复制
find . -type f -exec grep -l "/static/pdf/pdf1.pdf" '{}' \;
EN

回答 1

Stack Overflow用户

发布于 2018-06-14 05:49:54

for循环中文件的grep -rl:

代码语言:javascript
运行
复制
cd /www/webroot/
grep -rl "${name}" * | while read file_path; do
    # I need to do something with each file
    echo $file_path
done

或者我只需要运行输出文件

代码语言:javascript
运行
复制
cd /www/webroot/
grep -rl "${name}" * >> output_pdf_new.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50849694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档