如何 grep 匹配(不)匹配每行末尾的特殊字符"/"(无引号



我想在一个大文件中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

最新更新