Nav*_* CH 7 shell numbers sed increment
我有一个日期如下的文件,假设文件名是file1.txt:
2013-12-29,1
Run Code Online (Sandbox Code Playgroud)
在这里我必须将数字增加1,所以它应该是1 + 1 = 2之类的...
2013-12-29,2
Run Code Online (Sandbox Code Playgroud)
我尝试使用'sed'替换,但必须只使用变量.
oldnum=`cut -d ',' -f2 file1.txt`
newnum=`expr $oldnum + 1`
sed -i 's\$oldnum\$newnum\g' file1.txt
Run Code Online (Sandbox Code Playgroud)
但是我从sed语法中得到一个错误,有没有办法解决这个问题.提前致谢.
Wes*_*ker 12
Sed需要前倾斜线,而不是斜线.实际使用'\'时会出现多个有趣的问题,但快速修复应该是(使用双引号,如下所示):
oldnum=`cut -d ',' -f2 file1.txt`
newnum=`expr $oldnum + 1`
sed -i "s/$oldnum\$/$newnum/g" file1.txt
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑在这种情况下sed是否真的是适合这项工作的工具.更完整的一个工具,从awk到perl到python可能工作从长远来看更好.
请注意,我使用了$行尾匹配,以确保您没有将2012更换为2022,这是我认为您不想要的.
通常我想使用awk做这样的工作以下是代码可能工作
awk -F',' '{printf("%s\t%d\n",$1,$2+1)}' file1.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22142 次 |
| 最近记录: |