【发布时间】:2016-02-09 03:46:00
【问题描述】:
我正在创建一个脚本来散列文本的某些部分。关键是,我想用 sed 来做。下面是示例字符串的样子:
..HASHSTART.......HASHSTART..HASHEND..HASHEND..HASHSTART.....
.....HASHEND....HASHSTART.........
我有三个问题:
- 我想正确匹配“HASHSTART”和“HASHEND”。因此,例如,如果我会找到第一个 HASHSTART,那么我想将所有内容散列到第一个找到的 HASHEND,即使之间有更多的 HASHSTART。
- 即使 HASHSTART 和 HASHEND 之间有新行,我也想对其进行哈希处理。
- 如果文件末尾有 HASHSTART 而文件末尾没有 HASHEND,我想对之后的所有内容进行哈希处理。
“哈希”是指从 .到@。
所以有了这个输入,输出应该是:
..HASHSTART@@@@@@@@@@@@@@@@@@HASHEND..HASHEND..HASHSTART@@@@@
@@@@@HASHEND....HASHSTART@@@@@@@@@
非常感谢您的帮助。
【问题讨论】:
-
我尝试过这样的事情: sed 's/(HASHSTART)(.*)(HASHEND)/\1@\3/' 。但问题是给很多@并使其工作。