【发布时间】:2018-07-15 16:47:24
【问题描述】:
我正在尝试查找 3 个或更多新行的所有实例,并仅用 2 个新行替换它们(想象一个包含太多空白的文件)。我正在使用 sed,但如果这样更容易,可以使用 awk 或类似方法来回答。
注意:我在 mac 上,所以 sed 与在 linux 上略有不同(BSD 与 GNU)
我的实际目标是换行,但我根本无法让它工作,所以为了简单起见,我尝试匹配 3 次或更多重复的 bla 并将其替换为 BLA。
制作一个名为studt.txt的示例文件:
$ cat stupid.txt
blablabla
$
我的理解是你匹配 i 或更多的东西 使用正则表达式语法 thing{i,}。
我已经尝试过这种变体来匹配 3 个 blas,但没有运气:
cat stupid.txt | sed 's/bla{3,}/BLA/g' # simplest way
cat stupid.txt | sed 's/bla\{3,\}/BLA/g' # escape curly brackets
cat stupid.txt | sed -E 's/bla{3,}/BLA/g' # use extended regular expressions
cat stupid.txt | sed -E 's/bla\{3,\}/BLA/g' # use -E and escape brackets
现在我不知道还有什么可以尝试的!
【问题讨论】: