我的代码生成了几个 json 文件,它们看起来都类似于
{
"instance": "sample_instance_05",
"steps": [
{
"129": "North",
"14": "North",
"82": "North",
"53": "North",
"149": "North",
"6": "North",
"79": "North",
"40": "North",
"151": "North",
这些文件都在一个目录中。我的老板刚告诉我,我应该使用N
for North
、S
for South
、E
forEast
和W
for来生成数据West
。
由于这些数据文件需要相当长的时间才能生成,我不想为了这样一个简单的文本替换而再次运行代码。AWK/SED/GREP 等显然适合这项工作(我以前用过一点 AWK,但已经很生疏了)
是否有更简单的 Bash + AWK 循环,允许我按照指示转换文件中的所有行?
答案1
sed
方法
我建议使用sed
。以下内容应该可以替换中的所有word_1
to实例。word_2
myfile.json
$ sed -i 's/word_1/word_2/g' myfile.json
例如,将“North”改为“N”:
$ sed -i 's/North/N/g' myfile.json
请注意,该-i
标志将调用就地编辑,因此数据将立即改变。
awk
方法
您也可以awk
这样使用:
$ awk '{gsub(/word_1/,"word_2")}1' myfile.json > patchedfile.json