Awk 如何在同一字段中查找/打印两个连续的对号浮点数?

Awk 如何在同一字段中查找/打印两个连续的对号浮点数?,awk,Awk,我正在尝试打印两个连续行(浮点数)出现的符号相反(+/-)。例如,如果我有: 8.00 89.11 -21.42 -1.98 -44.23 23.72 34.21 56.72 -65.82 -37.49 -23.41 我想打印: 89.11 -21.42 -44.23 23.72 56.72 -65.82 我想知道使用awk的最佳方法是什么。如下: awk 'NR>1&&(p<0&&$0>=0||p>=0&&am

我正在尝试打印两个连续行(浮点数)出现的符号相反(+/-)。例如,如果我有:

 8.00
 89.11
-21.42
-1.98
-44.23
 23.72
 34.21
 56.72
-65.82
-37.49
-23.41
我想打印:

 89.11
-21.42
-44.23
 23.72
 56.72
-65.82
我想知道使用awk的最佳方法是什么。

如下:

awk 'NR>1&&(p<0&&$0>=0||p>=0&&$0<0){print p;print $0}{p=$0}' file
awk'NR>1&&(p=0 | | p>=0&$0如下:

awk 'NR>1&&(p<0&&$0>=0||p>=0&&$0<0){print p;print $0}{p=$0}' file
awk'NR>1&&(p=0 | | p>=0&$0
$awk'{cV=($01)&&(pV!=cV){print p0 ORS$0}{p0=$0;pV=cV}文件
89.11
-21.42
-44.23
23.72
56.72
-65.82
$awk'{cV=($01)和&(pV!=cV){print p0 ORS$0}{p0=$0;pV=cV}文件
89.11
-21.42
-44.23
23.72
56.72
-65.82