我有这样的专栏:
-0.000000650100
0.000015560000
-0.000003653000
-0.000004339000
0.000003259000
需要它们看起来像这样:
0
0.000015560000
0
0
0.000003259000
awk 没有成功,有什么建议吗?
与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
用awk很简单
awk '{print($0<0?0:$0)}' file.txt
您可以使用类似以下伪代码的 if:
if(getfirstchar($val)=="-"); then
$val = 0
fi
如果您喜欢没有任何数字的混淆代码,可以在语法上将“Chris Seymour”的解决方案修改为
mawk2 '/^\-/ {$_=+_} _^_'
甚至
gawk '/^\-/ {$("")=""^""}!""'
但保留它的相同功能。