【问题标题】:search through files and put into array搜索文件并放入数组
【发布时间】:2011-09-30 12:35:48
【问题描述】:
cat `find . -name '*.css'`

这将打开任何 css 文件。我现在做什么两件事。

1) 我如何也将 *.js 添加到此。所以我想看看所有的css和javascript文件。

2) 我想在这些(css 或 js 文件)中查找任何 css 或图像文件并将它们推送到数组中。所以我想寻找一个 .png、.jpg、.gif、.tif、.css 并将其之前的所有内容放入数组中,直到引号或单引号。我想要一个数组,因为这个命令将进入一个 shell 脚本,并且在我得到我需要的所有文件的名称之后,我需要循环并稍后下载这些文件。

任何帮助将不胜感激。

【问题讨论】:

    标签: linux terminal find cat


    【解决方案1】:

    额外的骇客,以防有人需要:

    find ./ -name "*.css" | xargs grep -o -h -E '[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)'| sed -e 's/\.\./{{url here}}/g'|xargs wget
    

    将下载所有丢失的资源

    【讨论】:

      【解决方案2】:

      执行命令:

      find ./ -name "*.css" -or -name "*.js" > fileNames.txt
      

      然后在循环中读取fileNames.txt的每一行并下载。

      或者,如果您打算使用 wget 下载图像,您可以这样做:

      find ./ -name "*.css" -or -name "*.js" | xargs grep '*.png' | xargs wget
      

      grep 之后可能需要像cut 一样进行一些改进,但你明白了

      【讨论】:

        【解决方案3】:

        1) 简单答案:您可以将所有 .js 文件的名称添加到您的 cat 命令中,通过指示 find 查找更多文件:

        cat `find . -name '*.css' -or -name '*.js'`
        

        2) 诸如grep 之类的文本搜索工具可能就是您所追求的:

        find . -name '*.css' -or -name '*.js' | xargs grep -o -h -E '[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)'
        

        注意:我的 grep 模式不是通用的或完美的,但它是一个开始的例子。它匹配任何包含字母数字、冒号、点、斜线、下划线或连字符的字符串,后跟任何一个给定的扩展名。

        -o 选项使 grep 仅输出 .css/.js 文件中与模式匹配的部分(即仅输出明显的文件名)。

        如果你想下载它们,你可以将| xargs wget -v 添加到命令中,这将指示wget 获取所有这些文件名。 注意:这不适用于相对文件名;将需要一些其他魔法(即您必须根据 grepped 文件的位置来解决它们)。也许是一些额外的黑客,例如sedawk

        另外:您多久会在 CSS/JS 中看到对 TIFF 的引用?

        【讨论】:

        • @Matty_K 这几乎是完美的。 ./example.com-saved/example.com/tipsy.js:tip.css。它给了我它所在的目录名,然后是一个冒号,然后是文件名。我想只有文件名。无论如何要得到那个? TIFF 不再真正使用,但我想我会把它扔进去。
        • @rich 我相信在 grep 命令中添加-h 可以消除该tipsy.js 文件名。已更新。
        • 哇,太棒了。那你很。有很多东西要学!
        • @rich 我告诉你一个秘密:我知道的不多,我只是输入了man grep 并阅读了手册。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多