我有大约 500 个数据损坏的文本文件,其中 -100、-101、..、-800 等数字应更改为字符串 E-90。我必须替换的负数最多为三位数,即 -123 而不是 -1234。
更具体一点。理想情况下,脚本应该检查每个文本文件是否存在从 -999 到 -100 的任何负数,如果是,则用 E-9 替换它。
我如何从命令行或使用 bash/windows 脚本来做到这一点?
我只找到了将精确字符串替换为另一个特定字符串的解决方案。但是我需要更改最多三位数的所有负数
一旦您提供示例输入,我将更新正则表达式以避免匹配 4 位数字(以下 -8000):
$ cat <<EOF | sed 's/-\([1-7][0-9][0-9]\|800\)([^0-9]\)/E-90\2/g'
> 1
> -100a
> -101
> -800
> -801
> -8000
> 2
> EOF
1
E-90a
E-90
E-90
E-900
-801
2