我的初始档案是
192.168.210.12
192.168.210.13
192.168.210.14
192.168.210.15
192.168.210.16
192.168.210.17
192.168.210.18
192.168.210.18
替换模式为%s/\(192.168.210.[0-9]\+\)/\"ssh\ myuser@\1\ -i\ ~\/Documents\/my_key\"/g
运行上面的命令后,我得到了以下文件。
"ssh myuser@192.168.210.12 -i /Documents/my_key"
"ssh myuser@192.168.210.13 -i /Documents/my_key"
"ssh myuser@192.168.210.14 -i /Documents/my_key"
"ssh myuser@192.168.210.15 -i /Documents/my_key"
"ssh myuser@192.168.210.16 -i /Documents/my_key"
"ssh myuser@192.168.210.17 -i /Documents/my_key"
"ssh myuser@192.168.210.18 -i /Documents/my_key"
"ssh myuser@192.168.210.18 -i /Documents/my_key"
在致电:u
然后同样替换之后,我得到以下内容:
"ssh myuser@192.168.210.12 -i "ssh myuser@192.168.210.12 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.13 -i "ssh myuser@192.168.210.13 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.14 -i "ssh myuser@192.168.210.14 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.15 -i "ssh myuser@192.168.210.15 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.16 -i "ssh myuser@192.168.210.16 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.17 -i "ssh myuser@192.168.210.17 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i /Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i /Documents/my_key"/Documents/my_key"
再次,我打电话:你和替换,它提供以下输出
"ssh myuser@192.168.210.12 -i "ssh myuser@192.168.210.12 -i "ssh myuser@192.168.210.12 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.13 -i "ssh myuser@192.168.210.13 -i "ssh myuser@192.168.210.13 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.14 -i "ssh myuser@192.168.210.14 -i "ssh myuser@192.168.210.14 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.15 -i "ssh myuser@192.168.210.15 -i "ssh myuser@192.168.210.15 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.16 -i "ssh myuser@192.168.210.16 -i "ssh myuser@192.168.210.16 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.17 -i "ssh myuser@192.168.210.17 -i "ssh myuser@192.168.210.17 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
"ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i "ssh myuser@192.168.210.18 -i /Documents/my_key"/Documents/my_key"/Documents/my_key"
但是,当我从模式中删除~
时(即使用此%s/\(192.168.210.[0-9]\+\)/\"ssh\ myuser@\1\ -i\ \/Documents\/my_key\"/g
),它会表现出预期效果。
~
上这种不寻常的替换行为的原因是什么。
答案 0 :(得分:1)
来自:h :s
magic nomagic action
~ \~ replaced with the {string} of the previous substitute s~
\~ ~ replaced with ~ s/\~
应用于您的替换表达式,~
将被替换为先前替换的字符串。