bash - 如何用 shell 脚本的参数替换文件中的特定行?
问题描述
我想使用可配置的参数替换文本文档中的特定行。文本文档示例:
DialogUpdateTags,
DialogProductNotFound
{
width: 1000;
height: 166;
}
在上面的示例中,我想专门编辑第 4 行“1000”,这样脚本就不会编辑其他可能也是 1000 的宽度值。到目前为止,我有这个:
echo "Enter the desired width size in pixels"
read pixelsize
echo "Width size will be $pixelsize"
之后我需要一个 sed 命令,有人可以帮忙吗?有没有办法将 SEP 仅指向第 4 行而不编辑其他任何内容?
解决方案
使用 GNU sed:
pixelsize="30"
sed -E "4s/(width: *)[^;]*/\1$pixelsize/" file
输出:
对话框更新标签, DialogProductNotFound { 宽度:30; 身高:166; }
如果您想“就地”编辑文件,请使用 sed 的选项-i
。
推荐阅读
- reactjs - 如何让 Jest 忽略命名 ESM 默认导出的未定义错误
- c++ - C++中的对象列表
- java - 如何编写类来替换向后兼容的 Java 中的泛型?
- c# - 使用 Razor 使引导库动态化
- thinkscript - 前 1 分钟柱的开盘和收盘
- python - Docker 容器中的芹菜:错误/MainProcess 消费者:无法连接到 redis
- node.js - 扩展运算符似乎没有复制完整对象
- github - 如何使用 PKGBUILD 创建你的第一个 archlinux 包
- python - PySpark 过滤,是 5 > NULL True 还是 False 还是被忽略?
- python - 如果输入等于特定数字,如何使用 sys.exit()