use*_*811 1 bash scripting sed
我试图在文件中搜索文本并将其存储到变量中.
我的文件看起来像这样:
Type: Furniture
Color: Blue
Version: 1
Run Code Online (Sandbox Code Playgroud)
我正在尝试搜索版本号并将其存储到变量中并递增它.我在搜索文件时不知道这个号码.到目前为止,我有类似的东西.
VERSIONNUMBER=//Somehow I want to get the version # from the file.
VERSIONNUMBER=`expr $VERSIONNUMBER + 1'
sed -i "s/Version:.*/Version=$VERSIONNUMBER/" filename
Run Code Online (Sandbox Code Playgroud)
到目前为止我是在正确的轨道上还是有更好的方法吗?我在搜索版本号时遇到问题.我一直在收到语法错误.任何帮助深表感谢.
VERSIONNUMBER=`sed -i "s/Version:/*" filename`
Run Code Online (Sandbox Code Playgroud)
这是awk的工作
awk '/Version:/{$2++}1' ./infile > ./outfile
Run Code Online (Sandbox Code Playgroud)
$ awk '/Version:/{$2++}1' ./infile
Type: Furniture
Color: Blue
Version: 2
Run Code Online (Sandbox Code Playgroud)
/Version:/ 仅匹配包含文本"Version:"的行
$2++:获取第二个字段,默认情况下awk用空格分隔,然后递增它
{...}1:一个快捷方式,告诉awk print在进行任何更改后将其排除在外