使用linux

时间:2017-10-30 23:47:41

标签: linux lag

如何使用linux延迟列?例如,在SAS中,以下代码可以使用。

lag2=lag(error2);
lag3=lag2(error2);
lag4=lag3(error2);
lag5=lag4(error2); 

输入如下

id1 id2 id3 numb error 
1 2 1 1_135098 OK  
0 2 0 1_267940 code3
0 0 0 1_305793 OK 
0 2 0 1_393248 code3 
0 5 1 1_434180 OK 
0 2 0 1_471078 code3 

我想要的输出是,我在第五列落后了4次

id1 id2 id3 numb error lag2 lag3 lag4 lag5
1 2 1 1_135098 OK . . . . 
0 2 0 1_267940 code3 OK . . .
0 0 0 1_305793 OK code3 ok . .
0 2 0 1_393248 code3 ok code3 ok .
0 5 1 1_434180 OK code3 ok code3 ok
0 2 0 1_471078 code3 ok code3 ok code3

2 个答案:

答案 0 :(得分:0)

创建了2个带有上述内容的文件

01HW497089:tmp Controller $ cat l.txt .. 好 .. code3好.. 好的code3好吧.. code3 ok code3好的 ok code3 ok code3

01HW497089:tmp Controller $ cat h.txt 1 2 1 1_135098 OK
0 2 0 1_267940 code3 0 0 0 1_305793好的 0 2 0 1_393248 code3 0 5 1 1_434180好的 0 2 0 1_471078 code3

输出

命令粘贴h.txt l.txt

01HW497089:tmp Controller $ paste h.txt l.txt 1 2 1 1_135098好.. 0 2 0 1_267940 code3 ok .. 0 0 0 1_305793 OK code3 ok .. 0 2 0 1_393248 code3 ok code3 ok .. 0 5 1 1_434180 OK code3 ok code3 ok 0 2 0 1_471078 code3 ok code3 ok code3 ls-ltr 01HW497089:tmp控制器$

答案 1 :(得分:0)

下面是脚本和输入文件

我检查它工作正常

h.txt 1 2 1 1_135098 OK
0 2 0 1_267940 code3 0 0 0 1_305793好的 0 2 0 1_393248 code3 0 5 1 1_434180好的 0 2 0 1_471078 code3

!/斌/庆典

for z in 1 2 3 4 5 6 做 for j in“..”“ok ..”“code3 ok ..”“ok code3 ok ..”“code3 ok code3 ok”“ok code3 ok code3” 做 echo $ j sed“”$ z“s /.*/& amp;'$ j'/ g”h.txt DONE 完成