刚开始使用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