Bar*_*rth 4 bash scripting search replace sed
我有几个包含这一行的文件
Release: X
Run Code Online (Sandbox Code Playgroud)
我想在所有文件中增加X.
如果文件之间的X是不变的,我可以在文件周围循环一个bash脚本($ 1包含前版本号,$ 2包含新版本,即$ 1 + 1):
sed 's/Release: '$1'/Release: '$2'/' <$file >$file.new
Run Code Online (Sandbox Code Playgroud)
现在,如果文件之间的版本号不同,我该怎么办?
它是否适用于sed?
我应该使用其他工具吗?
Ada*_*iss 13
使用awk- 它是完全正确的工具:
awk '/Release: [0-9]+/ { printf "Release: %d\n", $2+1 }' < $file > $file.new
Run Code Online (Sandbox Code Playgroud)
翻译:
这个perl one-liner将与awk脚本一样,但不会破坏文件的其余部分或包含该版本的其余行.
perl -pe "$_=~s/Release: (\d+)/'Release: '. ($1+1)/e;" < file > file.new
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6634 次 |
| 最近记录: |