如何重复列的第一个值,直到bash中的文件结尾?

时间:2019-04-23 16:20:15

标签: bash

我有几个这样的文件:

-400.0 238.963 -6.598192e-07

-399.5(空白)-3.041492e-07

-399.0(空白)-1.541584e-07

-398.5(空白)7.299802e-08

-398.0(空白)1.602192e-07

...

所有这些都一直到行号1601。

我要打印第二列的值,直到文件末尾。

赞:

-400.0 238.963 -6.598192e-07

-399.5 238.963 -3.041492e-07

-399.0 238.963 -1.541584e-07

-398.5 238.963 7.299802e-08

-398.0 238.963 1.602192e-07

...

(空白)表示它是一列,但第2行开始没有任何值。

我尝试过:

对于f中的文件 做 awk'(NR <= 1601){print $ 2} $ f> test.dat 完成

但是缺少一些东西。

有人可以帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

awk 'NR==1{col2=$2}NR>1{$2=col2 OFS $2}1'  file

会做

说明:

  • NR==1{col2=$2}从第一条记录中获取第二列,并将其存储到col2
  • NR>1{$2=col2 OFS $2}-从记录2开始,将抓取的列col2连接到第二个字段。
  • 1awk最简单的命令。它只是打印记录。