strings diskimage> diskstrings.txt生成了一个3GB的文本文件,其中包含一堆字符串,大多数是无用的东西,与我真正想要的文本混合在一起.
大多数残酷往往是长长的,不间断的乱码.我感兴趣的东西保证小于16kb,所以我要按行长度过滤文件.这是我用来做的Python脚本:
infile = open ("infile.txt","r");outfile = open ("outfile.txt","w");for line in infile: if len(line) < 16384: outfile.write(line)infile.close()outfile.close()
这有效,但供将来参考:是否有任何神奇的单行咒语(想想awk,sed)会按行长度过滤文件?
解决方法awk '{ if (length(perl -nle 'if (length($_) < 16384) { print }' yourfile >your_output_file.txt) < 16384) print }' yourfile >your_output_file.txt
将打印短于16千字节的行,如您自己的示例所示.
或者,如果你喜欢Perl:
总结以上是内存溢出为你收集整理的sed – Linux shell命令按行长度过滤文本文件全部内容,希望文章能够帮你解决sed – Linux shell命令按行长度过滤文本文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)