刚从 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
改用