Linux 在第一列值的每次重复上放置符号

Linux 在第一列值的每次重复上放置符号,linux,bash,shell,for-loop,awk,Linux,Bash,Shell,For Loop,Awk,Hii专家我有一个如下所示的输入文件,其中第一列值在一段时间后重复,现在我想用symbol>分隔重复的块 0.0 0.0 0.50000E+00 5.0 0.0 0.80000E+00 10.0 0.0 0.80000E+00 0.0 1.0 0.10000E+00 5.0 1.0 0.90000E+00 10.0 1.0 0.30000E+00 0.0 2.0 0.90000E+00 5.0

Hii专家我有一个如下所示的输入文件,其中第一列值在一段时间后重复,现在我想用symbol>分隔重复的块

 0.0     0.0   0.50000E+00
 5.0     0.0   0.80000E+00
10.0     0.0   0.80000E+00
 0.0     1.0   0.10000E+00
 5.0     1.0   0.90000E+00
10.0     1.0   0.30000E+00
 0.0     2.0   0.90000E+00
 5.0     2.0   0.50000E+00
10.0     2.0   0.60000E+00
现在我想在第一列值的每一个重复上加上>符号,这样我的输出应该是

  >       >      >
 0.0     0.0   0.50000E+00
 5.0     0.0   0.80000E+00
10.0     0.0   0.80000E+00
  >       >      >
 0.0     1.0   0.10000E+00
 5.0     1.0   0.90000E+00
10.0     1.0   0.30000E+00
  >       >      >
 0.0     2.0   0.90000E+00
 5.0     2.0   0.50000E+00
10.0     2.0   0.60000E+00
我尝试了下面的脚本:但它只是读取文件

#!/bin/sh
for file in `cat file.txt`
do
sed '>' $file
done

检查第一个字段是否低于上一个记录

$ awk '!(p<$1){k=$0; gsub(/\S+/,">",k); print k} {p=$1}1' file | column -t
>     >    >
0.0   0.0  0.50000E+00
5.0   0.0  0.80000E+00
10.0  0.0  0.80000E+00
>     >    >
0.0   1.0  0.10000E+00
5.0   1.0  0.90000E+00
10.0  1.0  0.30000E+00
>     >    >
0.0   2.0  0.90000E+00
5.0   2.0  0.50000E+00
10.0  2.0  0.60000E+00
如果需要保留间距,则需要稍微不同的方法

$ sed '1~3i> > >' file | column -t
>     >    >
0.0   0.0  0.50000E+00
5.0   0.0  0.80000E+00
10.0  0.0  0.80000E+00
>     >    >
0.0   1.0  0.10000E+00
5.0   1.0  0.90000E+00
10.0  1.0  0.30000E+00
>     >    >
0.0   2.0  0.90000E+00
5.0   2.0  0.50000E+00
10.0  2.0  0.60000E+00