Bash 脚本列出特定文件类型并写入文件



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

到目前为止,当尝试仅列出.pdf.txt.doc文件时,我得到了一个例子,只是想知道我哪里出错了?

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

顺便说一下,你可以在没有grep和正则表达式的情况下做到这一点,即

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

您错过了转义正则表达式中的某些字符,请看一下:

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

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

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

相关内容

  • 没有找到相关文章