如何解决列出目录不遵循特定格式
我有一个分配,其中仅使用bash单行,我必须在主目录中创建不遵循特定命名模式的特定目录。在我的主目录中,有些目录的格式为3个字母小写字母,后跟3个十进制数字。但是,还有其他目录不遵循此格式。我必须列出这些文件,并将信息输出到txt文件。到目前为止,我已经写了一些正在尝试的命令:
ls /home -1 | sed [^a-z][^a-z][^a-z].[^0-9][^0-9][^0-9]
ls /home -1 "[^[a-z][a-z][a-z][0-9][0-9][0-9]]"
ls /home -1 *{[^a-z][^a-z][^a-z].[^0-9][^0-9][^0-9]}*
在有人问之前,我知道格式化和搜索ls命令的输出并不像find命令那样有效。但是我正在处理的作业指示我只能使用以下命令:ls,ps,sed,cut,paste,paste,sort,tr,grep,awk,cat,uniq
解决方法
如果可以先使用shopt -s extglob
,然后
ls -1d /home/!([a-z][a-z][a-z][0-9][0-9][0-9])
如果没有,
ls -1d /home/* | grep -v '/home/[a-z][a-z][a-z][0-9][0-9][0-9]$'
请阅读ls
,grep
和shopt
的手册页。
如果您不明白为什么要这么做,那么您还没有学到任何东西,而我们只是为您完成工作...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。