Linux 在RedHat 7.7中使用grep
Linux 在RedHat 7.7中使用grep,linux,grep,redhat,Linux,Grep,Redhat,ls*输出: dossier_1: vc.all.2019.09.17.Tue.gz vc.all.2019.09.19.Thu.gz vc.all.2019.09.21.Sat.gz vc.all.2019.09.22.Sun.gz vc.all.2019.09.24.Fri.gz vc.all.2019.09.18.Wed.gz vc.all.2019.09.20.Fri.gz vc.all.2019.09.22.Sun vc.all.2019.09.23.Mon
ls*
输出:
dossier_1:
vc.all.2019.09.17.Tue.gz vc.all.2019.09.19.Thu.gz vc.all.2019.09.21.Sat.gz vc.all.2019.09.22.Sun.gz vc.all.2019.09.24.Fri.gz
vc.all.2019.09.18.Wed.gz vc.all.2019.09.20.Fri.gz vc.all.2019.09.22.Sun vc.all.2019.09.23.Mon vc.all.2019.09.25.Wed.gz
dossier_2:
vc.all.2019.09.17.Tue.gz vc.all.2019.09.18.Wed.gz vc.all.2019.09.19.Thu.gz vc.all.2019.09.20.Fri.gz vc.all.2019.09.21.Sat.gz vc.all.2019.09.22.Sun vc.all.2019.09.22.Sun.gz vc.all.2019.09.23.Mon
dossier_3:
vc.all.2019.09.17.Tue.gz vc.all.2019.09.18.Wed.gz vc.all.2019.09.19.Thu.gz vc.all.2019.09.20.Fri.gz vc.all.2019.09.21.Sat.gz vc.all.2019.09.22.Sun vc.all.2019.09.22.Sun.gz vc.all.2019.09.23.Mon
如果我这样做
ls * | grep -v "gz"
在我的目录中,我发现:
dossier_1:
vc.all.2019.09.22.Sun
vc.all.2019.09.23.Mon
dossier_2:
vc.all.2019.09.22.Sun
vc.all.2019.09.23.Mon
dossier_3:
vc.all.2019.09.22.Sun
vc.all.2019.09.23.Mon
如果需要此输出,命令是什么:
dossier_1:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
vc.all.2019.09.24.Fri.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.25.Wed.gz
dossier_2:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
vc.all.2019.09.24.Fri.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.25.Wed.gz
dossier_3:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
vc.all.2019.09.24.Fri.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.25.Wed.gz
我想显示目录名和他自己的文件,扩展名仅为.gz
但我不知道怎么做
你能帮我吗
谢谢大家!
grep-v'gz'
将排除包含gz
的所有输入行,因此不确定在实际希望保留它们时为什么使用-v
选项
我建议使用globs的shell循环解决方案
for d in *; do echo "$d"; ls -1 "$d"/*.gz; echo; done
- *中d的
将循环当前工作目录中的所有文件/目录。我假设你只有目录
将显示目录名echo“$d”
- 如果您希望在目录名的末尾使用冒号字符,请使用
echo“$d:”
- 如果您希望在目录名的末尾使用冒号字符,请使用
将在单列中显示此目录中以ls-1“$d”/*.gz
结尾的所有文件.gz
显示空行echo
- 这里有一种方法可以使用
awk
ls -A1 * | awk '/(^|:|\.gz)$/'
dossier_1:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
vc.all.2019.09.24.Fri.gz
vc.all.2019.09.25.Wed.gz
dossier_2:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
dossier_3:
vc.all.2019.09.17.Tue.gz
vc.all.2019.09.18.Wed.gz
vc.all.2019.09.19.Thu.gz
vc.all.2019.09.20.Fri.gz
vc.all.2019.09.21.Sat.gz
vc.all.2019.09.22.Sun.gz
列出所有文件夹中的所有文件(仅名称),每次一行ls-A1*
查找所有/(^ |:| \.gz)$/
为空、以
或以结尾的行:
结尾的行,然后打印它们