![删除具有相同值的重复行(附图)](https://linux22.com/image/1146183/%E5%88%A0%E9%99%A4%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E5%80%BC%E7%9A%84%E9%87%8D%E5%A4%8D%E8%A1%8C%EF%BC%88%E9%99%84%E5%9B%BE%EF%BC%89.png)
答案1
步骤1
让我们跟踪列的顺序。用 1、2、3 等填充底部的第一个空行(我假设是第 37 行)。我们稍后会需要它。不要使用公式 - 每个单元格都必须有一个值。请参阅:
https://help.libreoffice.org/Calc/Automatically_Calculating_Series]1
第2步
对于这一步,我假设第 36 行包含 350,并且您希望保留的所有列都没有第 36 行的数字 350。根据您的图像,这似乎是一个合理的假设。
- Ctrl + A
- 数据 > 排序 > 选项 >左到右
- 数据 > 排序 > 排序条件 > 排序键 1 > 第 36 行(降序)
步骤3
现在,所有“0-350”列都位于左侧。请将其删除。
步骤4
将您的列恢复到其原始顺序。
- Ctrl + A
- 数据 > 排序 > 选项 >左到右
- 数据 > 排序 > 排序条件 > 排序键 1 > 第 37 行(升序)
步骤5
删除最后一行——我们在步骤 1 中创建的行。
答案2
如果您正在寻找可编写脚本的命令行解决方案,并且重复项位于交替列中(如示例所示),那么您只需采取片输入字段数组由第一个元素组成,后面跟着第二个、第四个等等。在perl
(数组从零开始)中,这些将是索引,0,1,3,...N-1
您可以这样做
perl -F, -alne 'print join ",", @F[ 0, grep {$_ & 1} 1..$#F ]' data.csv > filtered.csv
(该grep {$_ & 1} 1..$#F
部分生成奇数索引)。