【发布时间】:2017-08-21 13:05:05
【问题描述】:
我正在尝试使用 perl 来编辑文件,主要是在文件中剪切和粘贴内容。但是,看来我错误地构造了正则表达式。我很感激帮助整理它。替换命令应该将export PATH=$PATH之后的内容剪切到但不包括# THIS IS LAST,并将该内容粘贴到export PATH=$PATH之前
Perl 命令:
perl -i -pe 's;(export PATH.*\n)(.*)(\# THIS IS LAST!\n);$2$1$3;' bashrc
当前 bashrc:
export TERM=xterm
export PATH=$PATH
export BREW_HOME=/home/dev/.linuxbrew
export ANACONDA_HOME=/home/dev/.anaconda3
# THIS IS LAST!
所需的 bashrc:
export TERM=xterm
export BREW_HOME=/home/dev/.linuxbrew
export ANACONDA_HOME=/home/dev/.anaconda3
export PATH=$PATH
# THIS IS LAST!
【问题讨论】:
-
Re "剪切
export PATH=$PATH之后的内容" ...这真的意味着“在行之后export ..”吗? (我的回答是做什么的——它将整行与后面的内容交换) -
@zdim:我的意思是从后续行开始,即
export BREW_HOME...本质上,我想将export PATH=$PATH和# THIS LINE IS LAST!行之间 的所有内容剪切并粘贴该内容之前export PATH=$PATH。这有助于澄清意图吗? -
是的,我就是这样处理的。修正了我的答案,以解决不应移动的棘手空行:)