我想在一个大文件中grep查找不以"/"结尾的行(没有引号(。下面是一个示例文件:
Folder1/clicker7Mac/
Folder1/clicker7Mac/clicker7.17.0_Mac/Resources/
Folder2/
Folder2/file of interest1.pdf
Folder2/Grades/
Folder2/Grades/another file of interest.pdf
Folder2/Grades/other files with unknown but not-slash extension
Folder2/Final_exam/
Folder2/Final_exam/a 3rd file.pdf
Folder2/Grades/an excel file of interest.xlsx
Folder2/Grades/Package_for_someone/
Folder2/HW/
Folder2/HW/HW1/
我只想要以文件结尾的行,而不是目录路径的行。 即在这里我想要输出:
Folder2/file of interest1.pdf
Folder2/Grades/another file of interest.pdf
Folder2/Grades/other files with unknown but not-slash extension
Folder2/Final_exam/a 3rd file.pdf
Folder2/Grades/an excel file of interest.xlsx
我已经搜索了堆栈交换和Unix论坛并尝试了以下内容(请注意,我已经颠倒了搜索,因为它更容易测试(:
grep '.*/' testfile
grep 'w*/b' testfile
(grep所有单词和斜杠,也拿文件;grep -v 什么都不用(
grep "[a-z.0-9]"'/b' testfile
(所有斜杠前的最后一个字符;grep -v 什么都不喊(
grep 'l*/b' testfile
grep '>/' testfile
(所有斜杠(不仅仅是结束斜杠(;grep -v 什么都不喊(
grep -F '/b' testfile
(fgrep 或 grep -F 被视为文字字符串,什么都不喊;grep -v 什么都不说(
请问有什么解决方案吗?
grep -v '/$' file
或
grep '[^/]$' file
输出:
文件夹2/感兴趣的文件1.pdf 文件夹2/成绩/另一个感兴趣的文件.pdf 文件夹2/成绩/扩展名未知但不斜杠的其他文件 文件夹2/Final_exam/第三个文件.pdf 文件夹2/成绩/感兴趣的 excel 文件.xlsx
请参阅:man grep
和堆栈溢出正则表达式常见问题解答
使用grep -v
排除所有以/
结尾的行:
$ grep -v '/$' testfile
Folder2/file of interest1.pdf
Folder2/Grades/another file of interest.pdf
Folder2/Grades/other files with unknown but not-slash extension
Folder2/Final_exam/a 3rd file.pdf
Folder2/Grades/an excel file of interest.xlsx
-v
是可移植的,由 POSIX 指定。
如果awk
是一个选项:
awk -F'/' '$NF' file
Folder2/file of interest1.pdf
Folder2/Grades/another file of interest.pdf
Folder2/Grades/other files with unknown but not-slash extension
Folder2/Final_exam/a 3rd file.pdf
Folder2/Grades/an excel file of interest.xlsx
它将字段分隔符设置为/
,然后测试最后一个字段是否包含某些内容,然后执行默认操作,打印行。
另一个变体更像grep
解决方案,测试行是否不以/
结尾:
awk '!/[/]$/' file
Folder2/file of interest1.pdf
Folder2/Grades/another file of interest.pdf
Folder2/Grades/other files with unknown but not-slash extension
Folder2/Final_exam/a 3rd file.pdf
Folder2/Grades/an excel file of interest.xlsx