【问题标题】:Bash script to list specific file types and write to file?用于列出特定文件类型并写入文件的 Bash 脚本?
【发布时间】:2012-11-12 00:44:34
【问题描述】:

刚开始使用 bash,我在让这个脚本工作时遇到了一些麻烦。我希望它列出目录的内容并仅将某些文件类型输出到.txt

下面是我尝试仅列出 .pdf.txt.doc 文件时所得到的示例,只是想知道我哪里出错了?

#!/bin/bash
ls -a | grep -vi '*.(pdf|txt|doc)$' $1 > contents.txt

【问题讨论】:

  • 阅读查找。至于您的解决方案,您希望 grep 来自管道的输入,而不是命令行上指定的文件 ($1)。

标签: regex bash grep ls


【解决方案1】:

顺便说一句,您可以在没有grep 和正则表达式的情况下执行此操作,即

ls -a *.{pdf,txt,doc} > contents.txt

【讨论】:

    【解决方案2】:

    你错过了在你的正则表达式中转义一些字符,看看这个:

    #!/bin/bash
    ls -a | grep -i '.*\.\(pdf\|txt\|doc\)$' $1 > contents.txt
    

    另外,从命令中删除 -v 选项,因为它指示 grep 传递那些 与正则表达式匹配的条目

    如果您不想转义正则表达式字符,请考虑改用egrep

    【讨论】:

      猜你喜欢
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      相关资源
      最近更新 更多