sed - 用双引号替换变量 num - SED
问题描述
我有这样的一行:
"abc/x-y-z": "^1.4"
我需要在同一个文件中替换^1.4
为*
,这样输出是"abc/x-y-z": "*"
双引号内的 num 可以是任何变量数。
我试过这个,但它是高度特定的^1.4
数字:
sed -i '21s/^1.4/*/' abc.json
解决方案
使用您显示的示例,请尝试以下操作。您需要在^
此处转义以使其成为文字字符,并且您还需要转义.
点以使其视为文字字符。
sed 's/\^1\.4/*/' Input_file
或根据 OP 的评论使其动态尝试:
sed 's/\^[0-9]+\.[0-9]+/*/' Input_file
此外,如果您在文件的第 21 行执行它,那么21s
就像您在尝试中尝试的那样使用。此代码将仅替换第一次出现的 ^1.4,以防您想要替换所有出现然后g
对上述代码使用(全局替换)选项。
一旦您对结果感到满意,我就没有使用-i
选项(对 Input_file 本身进行就地更新),然后sed -i
在上面的代码中使用选项。
推荐阅读
- php - Laravel:对具有多对多关系的集合进行排序
- java - 如何搜索 JSON 格式的单词?
- vba - 用于excel的程序太大vba
- java - 为什么我的计划任务没有运行
- hotspot - 热点重定向不起作用
- python - 这段代码最有效且呈现良好的版本是什么?
- vb.net - VB.NET newtonsoft 列表
- python - 使用给定的初始标记网格为凹形子网格分配标签
- javascript - Google App Script - 自定义 Importrange 函数,需要自动更新
- java - 如何在 Android API 级别 25 及以下使用反射 API getParameters?