gpt4 book ai didi

linux - 如何从文件中删除所有奇数行但使用单个衬垫保留第 1 行?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:03 25 4
gpt4 key购买 nike

我有一系列具有以下结构的文件

Header1
Data2
Garbage3
Data4
Garbage5
Data6

我想保留标题(第 1 行)和数据(偶数行),并扔掉垃圾(除 1 之外的奇数行)。我想到了一个丑陋的解决方案:

echo $(head -n 1 file.txt) $(awk 'NR%2==0' file.txt) | tr " " "\n" > file.tmp #I cannot rewrite file.txt directly
mv file.tmp file.txt

有没有办法在一行中优雅地做到这一点?注意:我不想打印到 STDOUT,我想替换 file.txt 以获得它自己的干净版本?

最佳答案

awk 'NR%2==0||NR==1' odd
Header1
Data2
Data4
Data6

这将根据两个条件打印行:

  1. 打印第 1 行。或者
  2. 打印任何能被 2 整除的行。

要在文件中进行更改:

awk 'NR%2==0||NR==1' odd >odd.tmp && mv odd.tmp odd

关于linux - 如何从文件中删除所有奇数行但使用单个衬垫保留第 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com