匹配时如何查找、匹配和替换行尾

How can i find, match and replace end of line when there is a match

这个问题可能很简单,我是自然语言处理的新手。我有百万行,如下例所示。我想用另一行替换最后一场比赛。

我的问题是这样的

user,user,'  i got the sims 3'  
user,user,   
user,user,'  cheer up liz'   
user,user,'  you ok mate? do you have skype btw?'  
user,user,  
user,user,'  i just played give it away in response to your tweet'  

预期输出

user,user,'  i got the sims 3'  
user,user, 'hi'  
user,user,' cheer up liz'   
user,user,' you ok mate? do you have skype btw?'  
user,user, 'hi'  
user,user, 'hi'    
user,user,'  i just played give it away in response to your tweet'  

我已经尝试 sed 在行尾替换为以下无效的代码

sed 's/,$/,""/g' filename > filename 2
sed 's/user,user,$/user,user,""/g' filename > filename 2

sed 's/,$/,''/g' filename > filename 2
sed 's/user,user,$/user,user,''/g' filename > filename 2

使用awk你可以做到:

awk -v sq="'" 'BEGIN{FS=OFS=","}  ~ /^[[:blank:]]*$/{  = " " sq "hi" sq } 1' file
user,user,'  i got the sims 3'
user,user, 'hi'
user,user,'  cheer up liz'
user,user,'  you ok mate? do you have skype btw?'
user,user, 'hi'
user,user,'  i just played give it away in response to your tweet'

将您的 sed 代码放在双引号内。

sed "s/,[[:blank:]]*$/, 'hi'/" file