0

我有这样的专栏:

-0.000000650100  
0.000015560000  
-0.000003653000  
-0.000004339000  
0.000003259000

需要它们看起来像这样:

0  
0.000015560000  
0  
0   
0.000003259000

awk 没有成功,有什么建议吗?

4

4 回答 4

3

sed

sed 's/^-.*/0/' file
0
0.000015560000
0
0
0.000003259000

awk

awk '/^-/{$0=0}1' file
0
0.000015560000
0
0
0.000003259000
于 2013-11-01T19:30:14.577 回答
2

很简单

awk '{print($0<0?0:$0)}' file.txt
于 2013-11-01T19:26:44.323 回答
0

您可以使用类似以下伪代码的 if:

if(getfirstchar($val)=="-"); then
$val = 0
fi
于 2013-11-01T19:27:23.060 回答
0

如果您喜欢没有任何数字的混淆代码,可以在语法上将“Chris Seymour”的解决方案修改为

mawk2 '/^\-/ {$_=+_} _^_'

甚至

gawk '/^\-/ {$("")=""^""}!""' 

但保留它的相同功能。

于 2021-11-08T23:41:08.770 回答