文件格式为
- 12000:P:1:14
- 12001 10000
- 12001 10500
- 12001 10800
- 12001 11000
我需要什么? 使用 SED(使用内联替换),我提取从(并包含)10500 到(并包含)10800 的范围(删除 12001 10000 和 12001 11000)并创建具有相同文件名的新文件,如下所示
- 12000:P:1:14
- 12001 10500
- 12001 10800
我在这里做了研究并阅读了很多答案,只有我发现它有效 sed -i '/10[0-4].../!d' *.file,但这只是部分好。正如我所看到的,只有 SED 有 (-i) 选项。请大家帮忙
最佳答案
Perl 来救援:
perl -ane 'print if 1 == $. || $F[1] >= 10500 && $F[1] <= 10800' file
-n
逐行读取输入-a
将每一行分割到 @F 数组中$.
是输入行号,因此1 == $.
对于标题行为 true$F[1]
是第二列
关于linux - 使用 SED 提取数据范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40710488/