我有一个1000行的文件看起来像
"20140611","20:19","C","IT","IT","HDR","HDPDIT","675605","000000135.97"," ..........
我正在尝试替换与此模式匹配的所有匹配项: 引用6个数字后跟一个结束语(即“675605”和“675605 @”)
使用编辑加正则表达式搜索和替换,搜索字符串为:
\"[0-9][0-9][0-9][0-9][0-9][0-9]\"
这将找到我需要的所有事件
但是我无法使用reg ex构造正确的替换来替换匹配自身,然后是@符号,例如“675605 @
答案 0 :(得分:1)
使用sed,您可以:
sed -r 's|"([0-9]{6})"|"\1@"|g' file
添加-i
以内联修改它。
所以我提出的正则表达式 - 替换形式是:
"([0-9]{6})" - "\1@"
引用:
\"([0-9]{6})\" - \"\\1@\"
答案 1 :(得分:1)
答案 2 :(得分:0)
您需要使用捕获组。我不知道你是否可以在Edit Plus中使用它们,但我认为它应该可行:
查找内容:\"(\d{6})\"
替换为:\"\1@\"
其中\1
是括号中捕获的数字。
答案 3 :(得分:0)
使用以下命令在vim或vi编辑器中打开文件:
然后使用此命令将“675605”模式替换为“675605 @” :%S /六十七万五千六百零五分之六十七万五千六百零五@ /克 然后 esc:wq 现在你打开你的文件,用“675605 @”替换你所有的“675605”模式。