【发布时间】:2017-06-15 20:55:52
【问题描述】:
我有一个看起来像这样的文件:
[[ this is a test
this is a line
this is another line]]
我希望它看起来像:
[[this is a test~this is a line~this is another line]]
如果我使用单个 [ 它可以工作.. with:
perl -ane "s/\R/~/ if (/\[/ .. /\]/) && !/]/;print $_ unless $_ =~ /~\s*\^s*$/;" < filename.txt
如何修改它以使用双 [[ ]] 我不得不使用 double 作为分隔符,因为我了解到一些包含单 ] 的文本在不需要时将其关闭。我已经确认文件中不存在双 [[ 。
【问题讨论】:
-
你有什么尝试吗?
/\[\[/ .. /\]\]/听起来不太难。 -
非常感谢!我是这个新手!效果很好!
-
我能再问你一个问题吗...现在如果我想清除此文件中的所有 [[ ]] .. 我该怎么做?
-
您可以通过替换来删除它们。在
print之前,只需执行s/\[\[|\]\]/;即可从当前行中删除一对左括号或右括号。您可以通过使用...而不是..以及所有$_和=~顺便说一句来摆脱&& !/]/。 -
嗨,Jason,欢迎来到 Stack Overflow。如果您在使用正则表达式和正则表达式运算符时遇到问题,我建议您阅读official Perl regex tutorial。