我试图通过添加一个数字来替换我的文本文件中的数字.即
sed 's/3/4/g' path.txt
sed 's/2/3/g' path.txt
sed 's/1/2/g' path.txt
Run Code Online (Sandbox Code Playgroud)
而不是这个,我可以自动化它,即找到一个/ d并在替换中添加一个.
就像是
sed 's/\([0-8]\)/\1+1/g' path.txt
Run Code Online (Sandbox Code Playgroud)
还想捕获多个数字,即([0-9])\t([0-9])更改每个数字,保持中间的选项卡
谢谢
编辑#2使用perl示例,我也希望它可以使用更多数字,即
perl -pi~ -e 's/(\d+)\.(\d+)\.(\d+)\.(\d+)/ ($1+1)\.($2+1)\.($3+1)\.($4+1) /ge' output.txt
Run Code Online (Sandbox Code Playgroud)
有关上述工作的任何提示吗?
算术输入不支持sed,但你可以在Perl中轻松完成.
perl -pe 's/(\d+)/ $1+1 /ge'
Run Code Online (Sandbox Code Playgroud)
使用该/e选项,替换表达式需要是有效的Perl代码.因此,您需要处理最终更新的示例
perl -pi~ -e 's/(\d+)\.(\d+)\.(\d+)\.(\d+)/ $1+1 . "." $2+1 . "." . $3+1 . "." . $4+1 /ge'
Run Code Online (Sandbox Code Playgroud)
其中字符串被正确引用,并且相邻字符串与.Perl字符串连接运算符连接在一起.(当它们与字符串连接时,算术数字也被强制转换为字符串.)
...当然,第一个脚本已经更优雅了,因为有了/g标志,它已经在字符串中的任何位置增加了每个数字序列.
| 归档时间: |
|
| 查看次数: |
8543 次 |
| 最近记录: |