我有一个如下文件:

Thumb Sri Lanka/Anuradhapura/Thumb Anuradhapura.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_b.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_d.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_f.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_l.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_r.jpg
Thumb Sri Lanka/Anuradhapura/vtour/panos/Anuradhapura.tiles/mobile/pano_u.jpg
Thumb Sri Lanka/Anuradhapura/vtour/plugins/fps.xml
Thumb Sri Lanka/Anuradhapura/vtour/plugins/gyro2.js


我需要删除第一行以外的所有行,这意味着如果行包含Thumb[any characters except /].jpg,则不应删除行。

我尝试使用sed来执行此操作,但是我不知道如何编写正则表达式。

我已经尝试过这样的操作:sed -i -e '.*Thumb^(/)\.jpg!d' file但它不起作用。

最佳答案

如果文件名必须以Thumb开头,然后是一个或多个字符(不带斜杠)和jpg,则可以使用如下所示的正则表达式:

Thumb[^\/]*\.jpg

demo

关于regex - 如何使用sed删除不包含模式的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44258192/

10-13 09:20