让我举一个例子,然后尝试解释我的问题:
noob@noob:~/Downloads$ ls | grep srt$
Elementary - 01x01 - Pilot.LOL.English.HI.C.orig.Addic7ed.com.srt
Haven - 01x01 - Welcome to Haven.DVDRip.SAiNTS.English.updated.Addic7ed.com.srt
Haven - 01x01 - Welcome to Haven.FQM.English.HI.C.updated.Addic7ed.com.srt
Supernatural - 08x01 - We Need to Talk About Kevin.LOL.English.HI.C.updated.Addic7ed.com.srt
The Big Bang Theory - 06x02 - The Decoupling Fluctuation.LOL.English.HI.C.orig.Addic7ed.com.srt
Torchwood - 1x01 - Everything changes.0TV.English.orig.Addic7ed.com.srt
Torchwood - 1x01 - Everything changes.divx.English.updated.Addic7ed.com.srt
Run Code Online (Sandbox Code Playgroud)
现在我只想删除four results上面的第一个命令。通常,如果我必须删除所有文件,我会这样做,ls | grep srt$ | xargs -I {} rm {}但在这种情况下,我只想删除前四个文件。
那么,如何限制 ls 和 grep 的输出或建议我采用替代方法来实现此目的。
您可以通过管道将命令head -n限制为n行:
ls | grep srt | head -4
Run Code Online (Sandbox Code Playgroud)