我需要使用sed命令编写一个shell脚本来更改其单词的数字,例如1-> 1、2-> 2,...,但是当我得到2个数字(11、25)时,请不要更改。

有什么想法吗?

谢谢

最佳答案

假设像我一样,您正在运行的sed版本不支持正则表达式断言,则可以使用如下脚本运行sed -rf myscript

s/(^|[^[:digit:]])1($|[^[:digit:]])/\1one\2/g
s/(^|[^[:digit:]])2($|[^[:digit:]])/\1two\2/g


...继续通过其他数字。分解如下:s启动替代命令。 /(^|[^[:digit:]])1($|[^[:digit:]])/是要替换的正则表达式。 (^|[^[:digit:]])表示捕获行的开头或不是数字的字符。 1是文字1。($|[^[:digit:]])表示捕获行尾或不是数字的字符。 \1one\2是替换字符串。 \1添加第一个捕获组的内容。 one添加一个字面值。 \2添加第二个捕获组。末尾的g表示替换操作应在每行上重复尽可能多的次数。

关于linux - Shell脚本使用字符串更改数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29519250/

10-13 05:08