我有一个如下文件:
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/