Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式和SED搜索并删除科学形式的浮点数_Sed - Fatal编程技术网

使用正则表达式和SED搜索并删除科学形式的浮点数

使用正则表达式和SED搜索并删除科学形式的浮点数,sed,Sed,我正在研究一个解决方案,使用shell脚本bash搜索指数超过3位的浮点数,例如11.1234567e+300,并删除e+和e+之后的数字 我使用grep搜索它,但我在SED中应用它时遇到了困难 grep -E '([[:digit:]]+[.])[[:digit:]]+[eE][+-][[:digit:]]{3}' filename 示例数据如下所示 COL1,COL2,COL3,COL4 TEXT123,11.12345,12.12345e+300,13.123456 非常感谢您的帮助。

我正在研究一个解决方案,使用shell脚本bash搜索指数超过3位的浮点数,例如11.1234567e+300,并删除e+和e+之后的数字

我使用grep搜索它,但我在SED中应用它时遇到了困难

grep -E '([[:digit:]]+[.])[[:digit:]]+[eE][+-][[:digit:]]{3}' filename
示例数据如下所示

COL1,COL2,COL3,COL4
TEXT123,11.12345,12.12345e+300,13.123456

非常感谢您的帮助。

如果我理解您的问题,并且您希望搜索并替换e+/-[[:digits:][]{3},您可以使用:

sed -E 's/([[:digit:]]+[.][[:digit:]]+)[eE][+-][[:digit:]]{3}/\1/g' file
$ sed -E ':a;s/([[:digit:]]+[.][[:digit:]]+[eE][+-])[[:digit:]]{3}/\1/;ta' file
示例使用/输出

让我知道这是否是你想要的,如果不是,我很乐意进一步帮助你

提出了一个很好的观点。如果您的意图是保留[Ee][+-],正如您的问题的简单阅读所示,您可以使用:

sed -E 's/([[:digit:]]+[.][[:digit:]]+)[eE][+-][[:digit:]]{3}/\1/g' file
$ sed -E ':a;s/([[:digit:]]+[.][[:digit:]]+[eE][+-])[[:digit:]]{3}/\1/;ta' file

虽然我不确定离开[Ee][+-]有什么用

使用这个Perl一行程序:

perl -pe 's{\b ( \d+ [.]? \d* ) [Ee] [-+]? \d{3,} }{$1}xg' in_file > out_file
例如:

echo 'TEXT123,11.12345,12.12345e+300,13.123456' | perl -pe 's{\b ( \d+ [.]? \d* ) [Ee] [-+]? \d{3,} }{$1}xg'
输出:

TEXT123,11.12345,12.12345,13.123456

执行的输出是什么?这应该是预期的输出。COL1,COL2,COL3,COL4 TEXT123,11.12345,12.12345,13.123456在你的问题中包括预期的输出和所有其他相关信息,不要在评论中散布。是的,这也符合e+/-的变化。我有点不清楚是否需要这样做,以及为什么需要这样做,但这只是问题的简单理解。。它应该在e+-包括e+-之后删除所有数字。@jgpadilla04更新了答案。这是一个非常简单的解决方案,它成功了!谢谢你的帮助!:不客气。祝你的脚本编写工作好运!