我有两个具有重复一般结构的长文件,
File1:
AA 100
BB 10
File2:
AA 100
BB 1
我想从 File1 的 File2 的偶数行中减去第 2 列,但保留/打印其他信息,以便保留。
期望的输出:
AA 100
BB 9
为此我写了awk
:
awk '{a=$2;getline<f;$2-=a}!(NR % 2)' f=File1 File2
这会产生:
BB 9
哪个可以很好地进行减法并打印结果,但我在添加其他数据时遇到问题。
我怎样才能在减法的同时打印其他数据?
如何在特定列中搜索带有“序列号”(在 16 之后重置)的大文件以查找丢失的行?
我有一个数据文件:
col1 col2 col3 col4 col5 1
col1 col2 col3 col4 col5 2
.
.
.
col1 col2 col3 col4 col5 15
col1 col2 col3 col4 col5 16
col1 col2 col3 col4 col5+1 1
Run Code Online (Sandbox Code Playgroud)
最后一列从 1 到 16 计数,然后重置为 1。此时将 1 添加到第 5 列。
干净的输出只会迭代到文件末尾。我怎样才能找到丢失的数据,例如
col1 col2 col3 col4 col5 1
col1 col2 col3 col4 col5 3
Run Code Online (Sandbox Code Playgroud)
从跳过值 2 的最后一列可以看出,其中一行已被跳过/丢失?
我想要丢失数据之前或之后的行号/位置作为所需的输出。
Stack Overflow 上的这个答案给了我使用awk
. 所以我想出的是:
awk '$6!=p+1{print NR}{p=$6}'
当当前行的第 6 列不等于最后一行的第 6 列 +1 …