Linux下如何按内容长度重定向文件?已知按行数重定向求方法
按内容长度处理文件的Linux实现方案
截取指定字符范围的内容片段
对应你举的示例场景:原文件存储内容I like Linux,需要取出长度范围0-6的内容得到I like,直接用cut命令即可:
- 按字符数截取(兼容中英文、特殊符号):
注:cut -c 1-6 原文件.txt > 输出文件.txtcut的字符计数从1开始计数,你提到的「0-6长度范围」对应从内容开头取6个字符的需求,参数写1-6即可,执行后输出正好是期望的I like。 - 纯英文内容按字节截取,效果和上述命令一致,把
-c替换为-b即可:cut -b 1-6 原文件.txt > 输出文件.txt
筛选行长度符合指定范围的整行内容
如果是多行文件,需要把「单行总长度在指定区间内」的整行导出,用awk处理更方便:
比如要导出所有行长度在0-10个字符之间的内容,执行命令:
awk 'length($0) >= 0 && length($0) <= 10' 原文件.txt > 筛选结果.txt
其中$0代表当前读取的整行内容,length()默认统计字符长度,修改两个边界数值就能自定义需要的长度范围。
内容的提问来源于stack exchange,提问作者Jim Macaulay
相关产品推荐
相关产品推荐

