Regex sed:Sustitute char“;A「;在字符串的一部分中,并将其保留在其他部分中

Regex sed:Sustitute char“;A「;在字符串的一部分中,并将其保留在其他部分中,regex,sed,substring,substitution,Regex,Sed,Substring,Substitution,所有内容都在标题中: 以下是多行文件的字符串模式: foo_bar_alpha = "a1b2c3_cat_andthis" barfoo_bar_alpha = "just a int number" loremfoo_bar_beta = "192.168.0.0" ... other lines come here ... 使用sed(和/或awk和/或perl),我需要将char“”替换为“.”,但只在字符串的第一部分中使用“=”右分隔,并保留第二部分(在“=”之后) St

所有内容都在标题中:

以下是多行文件的字符串模式:

foo_bar_alpha = "a1b2c3_cat_andthis"  
barfoo_bar_alpha = "just a int number"  
loremfoo_bar_beta = "192.168.0.0"  
... other lines come here ...
使用sed(和/或awk和/或perl),我需要将char“”替换为“.”,但只在字符串的第一部分中使用“=”右分隔,并保留第二部分(在“=”之后)

Sthg类:

sed "s/(.*)=(.*)/ \1 with "_" replaced by "." = \2/g" < my_file
                   ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
                          how to do that ?
sed“s/(.*)=(.*)/\1,其中“\uu”替换为“.”=\2/g”
Thx在adv

 awk '{gsub("_",".",$1)}1' ./infile
输入 输出 *注意:如果您确实需要在
=
上进行定界,因为您的变量名中包含空格(非常可疑),则此操作有效:

awk -F= '{gsub("_",".",$1)}1' OFS="=" ./infile
输入 输出 *注意:如果您确实需要在
=
上进行定界,因为您的变量名中包含空格(非常可疑),则此操作有效:

awk -F= '{gsub("_",".",$1)}1' OFS="=" ./infile
使用awk而不是sed

awk 'BEGIN{OFS=FS="="}{gsub("_",".",$1)}1' file

ruby -F"=" -ane '$F[0].gsub!(/_/,".");print $F.join("=")' file
使用awk而不是sed

awk 'BEGIN{OFS=FS="="}{gsub("_",".",$1)}1' file

ruby -F"=" -ane '$F[0].gsub!(/_/,".");print $F.join("=")' file
粗糙但有效:

sed 'h;s/.*=/=/;x;s/=.*//;s/_/\./g;G;s/\n//' filename
粗糙但有效:

sed 'h;s/.*=/=/;x;s/=.*//;s/_/\./g;G;s/\n//' filename


不远处:-),我还需要在两个部分之间保持“=”,测试正确吗now@hornetbzz再次检查我的答案。我在你之前更新过commented@Eelvex是的,加了一张便条来处理这个案子。但是,我认为不需要它,因为他的输入是变量名。@SiegeX,如果$1中有空格,可能需要。@kurumi不要紧,
awk
不会将前导空格作为一个字段计算在不远处:-),我还需要在两个部分之间保留“=”,正确测试now@hornetbzz再次检查我的答案。我在你之前更新过commented@Eelvex是的,加了一张便条来处理这个案子。但是,我认为不需要它,因为他的输入是变量名。@SiegeX,如果$1中有空格,可能需要。@kurumi不要紧,
awk
不会将前导空格计算为字段它也可以工作。您能告诉我“awk…}1”中最后一个1是什么意思吗?这是
{print}
Thx的“快捷方式”,它也可以工作。你能告诉我“awk…}1”中最后一个1是什么意思吗?这是
{print}
Thx的“快捷方式”。同样有效。我已经试了好几个小时才找到那个!!!我需要知道你的秘密;-)更改如下:sed'h;s/*=/=/;x;s/=*/;s/uu//g;Gs/\n/'。替换6)将保留空间(保留右侧部分)附加到图案空间7)删除由“G”Thx添加的换行符。同样有效。我已经试了好几个小时才找到那个!!!我需要知道你的秘密;-)更改如下:sed'h;s/*=/=/;x;s/=*/;s/uu//g;Gs/\n/'。替换6)将保留空间(保留右侧部分)附加到图案空间7)删除由“G”添加的换行符