当前位置: 首页 > 知识库问答 >
问题:

如何删除在 中第二次出现的模式之后的其余记录。CSV 文件

黄弘盛
2023-03-14

我有一个。CSV文件的标题后几乎没有记录,但是,在文件末尾之前有一个重复的标题,在该重复的标题之后还有一些记录(我不需要)。有没有办法检查第二次发生的标题模式并删除该重复标题之后的其余文件?下面是文件的示例。

col0, col1, col2, col3, col4, col5, col6,
1值0,1值1,1值2,1值3,1值4,1值5,1值6,
2值0,2值1,2值2,2值3,2值4,2值5,2值6,
3值,3值1,3值2,3值3,3值4,3值5,3值6,
2值0,4值1,4值2,4值3,4值4,4值6,
5值0,5值1,5值2,5值3,5值5,5值6,
6值0,6值1,6值2,6值3,6值4,6值5,6值6,
,,,(n)value e2,(n)value e3,(n)value e4,(n)value e5,(n)value e6,
col0,col1,col2,col3,col4,col5,col6,
1,不需要的,记录,之后,的,重复的,标头
2,不需要的,记录,之后,的,重复的,标头
3,不需要的,记录,之后,的,重复的,标头

这里我期望的输出如下所示

col0, col1, col2, col3, col4, col5, col6,
1值0,1值1,1值2,1值3,1值4,1值5,1值6,
2值0,2值1,2值2,2值3,2值4,2值5,2值6,
3值,3值1,3值2,3值3,3值4,3值5,3值6,
2值0,4值1,4值2,4值3,4值4,4值6,
5值0,5值1,5值2,5值3,5值5,5值6,
6值0,6值1,6值2,6值3,6值4,6值5,6值6,
,,,(n)值2,(n)值3,(n)值4,(n)值5,(n)值6,

附言:我有 GNU 标准版 4.1.5 和 GNU Awk 3.1.5

非常感谢任何帮助。

共有3个答案

阎嘉荣
2023-03-14

可能比实际情况复杂得多:

awk 'BEGIN{flag=0} $0==head{flag=1}; NR==1{head=$0}; flag==0{print $0}' file
轩辕阳焱
2023-03-14

这可能对你有用(GNU sed 4.2.1):

sed 's/,/\n/8;T;s/\n.*//;q' file

这可以通过尝试替换第8个,如果它不能像往常一样拯救和打印行,大多数行(在您的示例中)只有7个逗号,因此将单独保留,而包含重复标题的行将被缩短,并在退出处理时打印出来。

蓬英逸
2023-03-14

试试这个:

awk 'a~$0{exit}NR==1{a=$0}1' file
 类似资料:
  • 我有一个如下字符串 如何删除第二个字符

  • 问题内容: 我已经能够使用该站点上多个用户的输入来使用python创建一个csv,并希望对您的帖子表示感谢。我现在很困惑,将发表我的第一个问题。 我的input.csv看起来像这样: 我正在尝试删除“年份”列及其所有条目。从1960年到2010年,总共有40多个条目。 问题答案: 顺便说一句,循环可以删除,但并没有真正简化。 同样,您可以以直截了当的方式坚持删除列的要求。我发现这通常是一个不好的策

  • 本文向大家介绍找出数组中只出现1次的数,其余数均出现2次,扩展,其余数出现2次以上相关面试题,主要包含被问及找出数组中只出现1次的数,其余数均出现2次,扩展,其余数出现2次以上时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 位运算题目, 位运算中异或的性质:两个相同数字异或=0,一个数和0异或还是它本身。当只有一个数出现一次时,我们把数组中所有的数,依次异或运算,最后剩下的就是落单的数,因

  • 本文向大家介绍从表中删除记录,其中相关面试题,主要包含被问及从表中删除记录,其中时的应答技巧和注意事项,需要的朋友参考一下 尝试首先选择最大组,然后将其用作子查询。 编辑:

  • 我一直在使用pandas导入CSV,但每次尝试使用它时,我都会得到一个随机的额外行,这会导致代码中的错误。我如何完全抹去这一行? 我用来导入它的代码是:import itertools import copy import networkx as nx import pandas as pd import Matplotlib.pyplot as plt import csv 我的表是一个简单的I

  • 我正在尝试用漂亮的汤刮文本,我需要从一个特定类的跨度内获取文本,但在一个不同的类中丢弃同一跨度内的上标数字。我可以很容易地使用gettext从跨度中提取数字和内容,但最后我也得到了上标数字。解决方案需要能够丢弃sup标记的每个实例及其文本内容。 HTML示例: 我现在得到的是:16我想要的文本 我想要的:我想要的文本