Regex SED更改文件中的值
再次提出有关SED的问题。所以我有一个日志文件:Regex SED更改文件中的值,regex,sed,Regex,Sed,再次提出有关SED的问题。所以我有一个日志文件: ####################################### ################start host1############ ####################################### ##java serv host1,def,java,es,dev L2,0,dev w,fr host1,def,java,es,dev L3,0,dev w,fr host1,def,java,es,dev
#######################################
################start host1############
#######################################
##java serv
host1,def,java,es,dev L2,0,dev w,fr
host1,def,java,es,dev L3,0,dev w,fr
host1,def,java,es,dev M1,0,dev w,fr
host1,def,java,es,dev M4,0,dev w,fr
host1,def,java,es,dev N1,0,dev w,fr
host1,def,java,es,dev M5,0,dev w,fr
##c++ serv
host1,def,ESServer,es,dev L2,0,dev w,fr
host1,def,ESServer,es,dev L3,0,dev w,fr
host1,def,ESServer,es,dev M1,0,dev w,fr
host1,def,ESServer,es,dev M4,0,dev w,fr
host1,def,ESServer,es,dev N1,0,dev w,fr
host1,def,ESServer,es,dev M5,0,dev w,fr
#######################################
################end host1##############
#######################################
#######################################
################start host2############
#######################################
##java serv
host2,def,java,es,dev L2,0,dev w,fr
host2,def,java,es,dev L3,0,dev w,fr
host2,def,java,es,dev M1,0,dev w,fr
host2,def,java,es,dev M4,0,dev w,fr
host2,def,java,es,dev N1,0,dev w,fr
host2,def,java,es,dev M5,0,dev w,fr
##c++ serv
host2,def,ESServer,es,dev L2,0,dev w,fr
host2,def,ESServer,es,dev L3,0,dev w,fr
host2,def,ESServer,es,dev M1,0,dev w,fr
host2,def,ESServer,es,dev M4,0,dev w,fr
host2,def,ESServer,es,dev N1,0,dev w,fr
host2,def,ESServer,es,dev M5,0,dev w,fr
#######################################
################end host2##############
#######################################
如何将“host1”部分中L2符号后的值从0更改为1,标记为“java”和“c++”?此变体不适用于我:
sed '/start host1/,/end host1/s/,L2,0,/L2,1,/g' file
还有一个问题。如何仅在java标签中更改此值,而仅在“HoST1”节中的C++标记中更改此值。
提前谢谢 你可以试试这个
sed '/start host1/,/end host1/{s/\(host1,def,java,es,dev \)L2,0/\1L2,1/g}' file
你可以试试这个
sed '/start host1/,/end host1/{s/\(host1,def,java,es,dev \)L2,0/\1L2,1/g}' file
类似这样的东西可以让您开始:
awk -F, -vOFS=',' '/host1,def,java,es,dev L2/{$6=1}1' input
类似这样的东西可以让您开始:
awk -F, -vOFS=',' '/host1,def,java,es,dev L2/{$6=1}1' input