shell:替换任意“start”和“finish”之间包含的所有特定文本

问题描述 投票:-1回答:1

我想从nix shell运行一个衬里来替换任意“开始”和“完成”之间包含的所有特定文本,例如在

nfw987__qrh fwef_start_hf9
832j fsjdlkfa;jd(&6^)lf dfs
ahlkj;fd__sajhfds
dsfahs__lkjfdsaf jlkfdsa_finish_jfoi__edwp

__替换_start__finish_之间的所有()

我尝试过网络搜索,但我找到的只是“简单”替换。我正在写一个代码来做到这一点,但也许恕我直言的常见任务已经用sed,perl,awk等解决了。

regex replace full-text-search
1个回答
0
投票

根据al76链接,sed可以很容易地用于这种情况(文本也在开始和结束行上被替换,无论该行文本在哪里,都不能完全回答我的问题,但对于我当前的任务就足够了):

为了解决两个正则表达式RE1和RE2之间的界限,可以这样做:'/ RE1 /,/ RE2 / {commands;}'

sed '/_start_/,/_finish_/{s/__/\(\)/g}' tst2.txt

© www.soinside.com 2019 - 2024. All rights reserved.