我有一个文件中的项目列表,
foobar
barfoo
bar
faaboo
foo
boofar
fo
b
Run Code Online (Sandbox Code Playgroud)
使用perl,我只是在脚本之后将通过文件名并删除3个字符或更少的所有项目.覆盖现有文件名(不创建新的或临时文件名),因此列表将成为.
foobar
barfoo
faaboo
boofar
Run Code Online (Sandbox Code Playgroud)
一内胆:
perl -ine '{print if /.{4}/}' filename
Run Code Online (Sandbox Code Playgroud)
length正如Jonathan Leffler在评论中指出的那样,你可以使用(为换行符添加1)而不是正则表达式,这可能在非常大的文件上更快.这是一个Windows版本(注意使用双引号cmd代替单引号):
perl.exe -i.bak -n -e "{print if length > 4}" filename
Run Code Online (Sandbox Code Playgroud)
另外,为了回答您的评论,遗憾的是,如果-i没有备份文件,您无法在Windows上执行就地编辑.请参阅此SO帖子以获取详细说明(同样,Windows限制,而不是Perl)以及解决方法.