首页 > 解决方案 > 使用 bash 将数字列表转换为表格中多个字段的范围

问题描述

我有一个包含两列数字列表的文件,需要将它们转换为范围。寻找一个 bash 命令行来实现这一点。提前致谢!

输入文件:
col1 col2 col3 col4
a 1,2,3,5 b 11,12,13,14
c 3,5,6 d 13,16,17
f 6 g 1,2,3,4
..... ………………

输出文件:
col1 col2 col3 col4
a 1-3,5 b 11-14
c 3,5-6 d 13,16-17
f 6 g 1-4
... ... ... ... ...

<p>I have a file with two columns of number lists, and need to convert them to ranges. Looking for a bash command line to achieve that. Thanks in advance!</p>
<p>Input file: <br />col1&nbsp; &nbsp;&nbsp; col2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; col3 &nbsp;&nbsp; &nbsp; col4 <br />a &nbsp; &nbsp;&nbsp;&nbsp; 1,2,3,5&nbsp;&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11,12,13,14 <br />c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3,5,6&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13,16,17 <br />f&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,2,3,4 <br />...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... </p>
<p>Output file: <br />col1&nbsp;&nbsp; col2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; col3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; col4 <br />a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1-3,5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11-14 <br />c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3,5-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13,16-17 <br />f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1-4 <br />...&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</p>

标签: bash

解决方案


推荐阅读