使用 sed
,有没有一种方法可以在字符之后替换行中模式的所有出现?
例如,将句号后面的每个空格都替换为下划线,就会将此文本转换为:
k i c k . t h e . b a b y
将其转变为:
k i c k ._t_h_e_._b_a_b_y
谢谢!
这个方法可能适用于你(使用 GNU sed):
sed -r ':a;s/(\.[^ ]*) /\1_/;ta' file
将第一个 .
前的空格替换为下划线 _
sed 's/\./&\n/;h;y/ /_/;H;g;s/\n.*\n//' file
有一点长,我想不到更短的方法,但效果不错:
sed 'h ; s/[^.]*// ; s/ /_/g ; x ; s/\..*$// ; G ; s/\n//'
^ ^ the pattern to replace
awk
:awk -F. -vOFS=. '{a=$1 ; $1="" ; gsub(" ","_") ; print a $0}'
^ ^ the pattern to replace
.
后面的所有内容都应该加上_
,对吗? - Andy K