我的示例文本是:
evince /media/ismail/SSDWorking/book-collection/_Books/kids/Coping Skills.pdf
/usr/lib/libreoffice/program/soffice.bin --impress file:///home/ismail/Desktop/LibreOffice%20Impress.odp --splash-pipe=5
/usr/bin/gjs /usr/bin/com.github.johnfactotum.Foliate /media/ismail/SSDWorking/book-collection/_Books/kids/Coping Skills.epub
mpv /media/ismail/8TBRaid0/_IslamNaseed/_JunaidJamshed/Mera Dil Badal De.mp3
这里我使用的两个正则表达式是:
grep -o '/media/ismail/.*'
grep -o 'file:\S*'
但是,我需要一个正则表达式来匹配两者,我不想使用像/media/ismail/
这样的固定字符串,因为这可能会因机器而异。
为了清楚起见,首先,这些是Linux文件路径。其次,我期望的输出是:
/media/ismail/SSDWorking/book-collection/_Books/kids/Coping Skills.pdf
file:///home/ismail/Desktop/LibreOffice%20Impress.odp
/media/ismail/SSDWorking/book-collection/_Books/kids/Coping Skills.epub
/media/ismail/8TBRaid0/_IslamNaseed/_JunaidJamshed/Mera Dil Badal De.mp3
1条答案
按热度按时间jvidinwx1#
这个正则表达式匹配你想要的目标:
参见live demo。
作为
grep
命令:参见live demo。
-P
选项用于 perl compatible regex