使用正则表达式匹配字符串

时间:2016-03-15 07:33:14

标签: regex shell

我的文件很少,例如123.iso234.isoaa456.isoabsajdhsjf.isoaf
我想提取除了那些以.iso结尾的文件以外的所有文件 例如,我应该234.isoaa456.isoabsajdhsjf.isoaf

3 个答案:

答案 0 :(得分:1)

假设您的意思是“所有文件后缀以.iso 开头,除了那些......”,这有效:

ls -1 | egrep "\.iso.+"

答案 1 :(得分:0)

试试这个:

\ B [\ W]的(?!异\ b)中。[\ W] \ B'/ P>

答案 2 :(得分:0)

正如Tim Pietzker所说,你没有说明你需要一个解决方案的shell,但是在zsh中你可以做到

setopt local_options extended_glob
echo *^*.iso(N)

如果您很高兴获得最后有.isoX的文件(包含任何X),这应该适用于bash,zsh和ksh:

echo *.iso?*

请注意,第二个解决方案 - 与第一个解决方案不同 - 会列出abc.txt等文件。

当然,您可以ls -1代替echo。这取决于您对结果的处理方式。