我有一個大config.js檔案,我想更換default:false,到default:true,這是對的頂部field:'$scope.keepEffort'。我嘗試了多種sed命令解決方案,但似乎沒有任何效果。
{
default:false,
enabled:true,
field:'criticalPath',
filter:false,
filterValue:'',
id:'show-critical-path',
operator:'colorize'
},{
default:false,
enabled:true,
field:'$scope.keepEffort',
filter:false,
filterValue:'',
id:'effort-constant',
operator:'var'
},{
default:false,
enabled:true,
field:'$scope.automaticProgress',
filter:false,
filterValue:'',
id:'automatic-progress',
operator:'var'
},{
default:false,
enabled:true,
field:'groupView',
filter:false,
filterValue:'',
id:'gantt-group-view',
operator:'var'
},{
uj5u.com熱心網友回復:
這是一份作業awk。以下不會嘗試匹配單引號,因為這樣做需要一些混淆解決方案的 shell 參考。此外,{列印尾隨。這很容易洗掉,為了清楚起見,省略了這樣做的代碼:
awk '/field:.\$scope.keepEffort/{gsub("default:false","default:true")}1' RS=\{ ORS=\{ input-file
這個想法只是將記錄分開{,然后gsub僅在與所需行匹配的記錄上執行替換(via )。
uj5u.com熱心網友回復:
這可能對你有用(GNU sed):
sed ':a;/{/{n;:b;N;/}/!bb;/\$scope.keepEffort/s/\(default:\)false,/\1true,/;ba}' file
收拾行之間{以及}如果這些行包含$scope.keepEffort更換default:false的default:true。
NB 添加n后匹配{,允許匹配}. 此外,:a收集收集后回傳以便能夠匹配另一個{.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364445.html
上一篇:僅在某些行上在BASH中添加一行
