awk -F '=' "/\[$section\]/{a=1}(a==1 && \"$key\"==\$1){\$2=\"=\"$value\"\"}1" $file > tmp.ini cat tmp.ini |grep devtype 为什么输出是devtype =1,而不是devtype=1
时间: 2023-06-27 09:07:52 浏览: 66
这是因为在awk命令中,你使用了双引号来包含字符串,而双引号会对其中的变量进行展开和替换。所以在将$value的值赋给\$2时,双引号也被包含了进去,就导致了输出中出现了多余的空格。
为了避免这种情况,你可以使用单引号来包含字符串,这样其中的变量就不会被展开和替换:
```
awk -F '=' '/\['$section'\]/{a=1}(a==1 && "'$key'"==$1){$2="="'$value'""}1' $file > tmp.ini
```
这样输出就会是devtype=1了。
相关问题
awk -F '=' "/[$section]/{a=1}(a==1 && "$key"==$1){$2="$value"}1" $file 为什么少了一个=
这是因为在awk命令中,变量$1表示当前行中的第一个字段,变量$2表示当前行中的第二个字段,以此类推。而在awk命令中,等号(=)是一个分隔符,用于分隔每个字段。因此,在将变量$value赋值给第二个字段时,需要在等号前后都加上引号,以保证awk命令的正确性。正确的写法应该是:
```awk -F '=' "/[$section]/{a=1}(a==1 && "$key"==$1){\$2=\"$value\"}1" $file```
其中,变量$value需要用反斜杠(\)转义,以防止它被解释为awk命令中的一个变量。
awk -F '=' "/\[$section\]/{a=1}(a==1 && \"$key\"==\$1){\$2=\"$value\"}1" $file
这是一行使用 awk 命令的脚本,用于修改 INI 文件中指定 section 和 key 的 value 值。
具体解释如下:
- -F '=' 表示使用等号作为分隔符。
- "/\[$section\]/{a=1}" 表示匹配 section 名称,如果匹配成功,则将变量 a 设置为 1。
- "(a==1 && \"$key\"==\$1)" 表示如果变量 a 等于 1 并且当前行的第一个字段与指定的 key 值相等,则执行后面的命令。
- "{\$2=\"$value\"}" 表示将当前行的第二个字段设置为指定的 value 值。
- "1" 表示打印所有行。
$file 是要处理的 INI 文件的文件名。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)