我有一个包含各种路径的文件,例如:
/home/user/Desktop/Bash/file1.txt
/home/user/Desktop/Bash/file2.txt
/home/user/Desktop/Bash/file3.txt
/home/user/Desktop/Bash/moreFiles/anotherFile.txt
/home/user/Desktop/text/prettyFile.txt
我从包含目录的用户那里收到输入,例如:
/home/user/Desktop/Bash/
而且我通常将这个表达式保存到regex中,以便通过grep查找目录中的所有文件。但是,如果文件夹有更多文件夹,它也会包含它们,但我只想包含用户输入的目录中的文件。我想要的输出应该是这样的:
/home/user/Desktop/Bash/file1.txt
/home/user/Desktop/Bash/file2.txt
/home/user/Desktop/Bash/file3.txt
但它一直包括
/home/user/Desktop/Bash/moreFiles/anotherFile.txt
这是我不想要的,我需要在 bash 脚本中进行。
您可以使用此grep
命令直接获取给定路径下的文件跳过子目录:
s='/home/user/Desktop/Bash/'
grep -E "$s[^/]+/?$" file
/home/user/Desktop/Bash/file1.txt
/home/user/Desktop/Bash/file2.txt
/home/user/Desktop/Bash/file3.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句