我必须在 Linux 或 Windows 上重新更改一些 txt 文件

问题描述 投票:0回答:1

我有大约 500 个数据损坏的文本文件,其中 -100、-101、..、-800 等数字应更改为字符串 E-90。我必须替换的负数最多为三位数,即 -123 而不是 -1234。

更具体一点。理想情况下,脚本应该检查每个文本文件是否存在从 -999 到 -100 的任何负数,如果是,则用 E-9 替换它。

我如何从命令行或使用 bash/windows 脚本来做到这一点?

我只找到了将精确字符串替换为另一个特定字符串的解决方案。但是我需要更改最多三位数的所有负数

recursion substitution txt
1个回答
0
投票

一旦您提供示例输入,我将更新正则表达式以避免匹配 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
© www.soinside.com 2019 - 2024. All rights reserved.