加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – Bash reg-exp替换

发布时间:2020-12-14 05:58:48 所属栏目:百科 来源:网络整理
导读:有没有办法在bash中的当前行上运行 regexp-string替换? 我经常在这种情况下找到自己,在那里我输入了一个长命令行,然后意识到,我想在一行中改变一个单词. 我当前的方法是完成该行,按Ctrl A(到达行的开头),插入一个#(注释掉行),按回车键然后使用^ oldword ^ n
有没有办法在bash中的当前行上运行 regexp-string替换?

我经常在这种情况下找到自己,在那里我输入了一个长命令行,然后意识到,我想在一行中改变一个单词.

我当前的方法是完成该行,按Ctrl A(到达行的开头),插入一个#(注释掉行),按回车键然后使用^ oldword ^ newword语法(^ oldword ^ newword用newword替换oldword后执行上一个命令).

但必须有一种更好(更快)的方法来实现这一目标. (鼠标是不可能的,因为我大部分时间都在ssh-sessions中).

可能有一些类似emacs的键命令,我不知道.

编辑:我尝试过使用vi-mode.发生了一件奇怪的事.虽然我是一个充满爱心的用户,但是使用我心爱的bash时我遇到了很大的麻烦.所有那些已经被我的潜意识烧伤的手指动作突然停止了工作.我很快回到emacs模式并考虑,给emacs一个尝试作为我最喜欢的编辑器(虽然我猜,同样的事情可能会再次发生).

解决方法

不幸的是,不,没有更好的方法.如果你只是厌倦了按键,你可以使用宏来修剪它们.将以下内容添加到?/ .inputrc中:

"C-x6": "C-a#C-m^"
"C-x7": "C-mC-PC-aC-dC-m"

现在,在一个新的bash实例中(或者通过按C-x C-r在当前shell中重新加载.inputrc之后),您可以执行以下操作:

>键入伪命令(例如,ls abcxyz).
>按Ctrl-x,然后按6.宏在行的开头插入一个#,执行注释行,然后键入第一个^.
>输入您的更正(例如,xyz ^ def).
>按Ctrl-x,然后按7.宏完成替换,然后转到上一个(注释)行,删除注释字符,然后再次执行.

这不是很优雅,但我认为这是你用readline获得的最好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读