如何使用 awk/sed 从文件中删除重复的行?

舞蹈家

我正在对一个包含许多帧的非常大的文件进行后处理。偶尔会有一个空框。我想删除这些。例如,

文件.txt

TIMESTEP
101
NUMBER OF ATOMS
3
ATOMS x y z
O 1 2 3
H 2 1 3
C 1 1 2
TIMESTEP
102
NUMBER OF ATOMS
3
ATOMS x y z
TIMESTEP
103
NUMBER OF ATOMS
3
ATOMS x y z
O -1 2 3
H  1 2 3
C  0 1 1
...

我想获得

文件.txt

TIMESTEP
101
NUMBER OF ATOMS
3
ATOMS x y z
O 1 2 3
H 2 1 3
C 1 1 2
TIMESTEP
103
NUMBER OF ATOMS
3
ATOMS x y z
O -1 2 3
H  1 2 3
C  0 1 1
...

我试过了

sed '/3.*/{:a;N;N;N;N;/.*NUMBER OF ATOMS$/d;ba}' file.txt

但这也会删除有效的帧,这不是我想要的。任何指示和建议都非常感谢!

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

sed -n '/TIMESTEP/!{H;$!d};x;s/\n/&/5p' file

收集保留空间中的帧(记录),并且仅打印 6 行或更多行长的帧。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除文件中特定的重复行?

如何从文件中删除重复的行?

使用Java删除文件中的重复行

如何使用perl脚本从文件中删除选定的重复行

如何从csv文件中删除多个重复行的行?

如何删除文本文件中的重复行?

如何删除/阻止文本文件中的重复行

如何删除 YAML 格式配置文件中的重复行?

如何删除重复行而不在 CSV 文件中创建空行?

使用sed或awk删除文件每个段落中的重复行

如何删除文本文件中的重复行并获取删除的行数?

使用python脚本从CSV文件中删除重复的行并更新此CSV文件

如何删除文件中重复的行,但第一个匹配的行除外

如何从文本文件中删除重复行以及与此重复项相关的唯一行

如何在 Bourn shell 脚本中删除文本文件中的重复行?

如何从文件中删除重复的数字?

如何在Linux中删除重复文件

如何从文件中删除重复的文本?

如何从数组列表中删除重复的文件

如何删除文件中的重复项

如何从旧的重复备份中删除文件?

如何从json文件中删除重复的条目?

如何使用 iText 7 删除 PDF 文件中的重复字体

如何使用宏 vba 从特定列中删除重复的行

如何使用 SQL 删除 MS Access DB 中的重复行

如何使用SQL查询删除MySQL中的重复行?

如何使用QueryDsl在查询中按id删除重复行

如何使用 UPDATE 合并和删除 SQL 中的重复行?

如何删除MySQL表中的重复行?