无法在vi中输入^A

10

我在shell脚本中无法键入(Control A)字符。尝试使用(Ctrl+V)和(Ctrl+A),但无效。 我能够在cli中输入(Ctrl+A),但不能在shell脚本中。我是在vi中编写shell脚本的。

我想要做的是编写一个包含命令sed 's/^A//g'的shell脚本,即尝试用NULL替换(Ctrl+A)。


不是直接回答,但是 tr -s '001' 'X' 怎么样?(Ctrl-A 是 001) - PW.
1
必须存在一种更简单/更快的形式,但至少这个命令可以工作:sed -e 's/'$(echo -e "\0001")'/'$(echo -e "\000")'/g'(实际上它会替换为 NUL,如果您想要空,只需删除第二个 echo)。 - PW.
1
哪个Shell和编辑器? - NeronLeVelu
@PW - 它正常工作。干杯。 :) - Joy Jyoti
@PW - 在尝试替换 (Control-A) 时,我们是回显 Ctrl-A 的十进制值还是十六进制值? - Joy Jyoti
显示剩余2条评论
2个回答

8

@Joy,如果你正在使用Vi/Vim,请确保你处于插入模式,然后按下(Ctrl+V),再按下(Ctrl+A)来输入^A。抱歉,我真的不明白为什么这样做不起作用...也许是因为你的(Ctrl+V)按键被其他软件层捕获了?


我正在插入模式。在我的UAT环境中,从vi编辑器中使用(Ctrl+V)后跟(Ctrl+A)以输入^A似乎无法正常工作。它在命令行外部运行良好,但通过vi编辑器无法正常工作。像“PW”建议的方法已经帮助了我。 - Joy Jyoti

0
这对我有效:
cat file
This is a test ^A more data

sed 's/\^A//g' file
This is a test  more data

替换将会生效。我的问题可能是错误的。 我正在尝试编写一个shell脚本,其中我想写 - sed's;^A;;g' 我无法在shell文件中输入^A。我正在尝试使用(Ctrl+V)然后(Ctrl+A)来输入^A。但是我得到了错误 - E29: 在vi中还没有插入文本。 - Joy Jyoti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接