仅用行的一部分替换行

仅用行的一部分替换行

我有一张来自维基百科的大表格(来自维基来源),我想提取其中的一列,我在 vim 中打开它,我想要提取的内容如下所示

|col||[[what I want]]||another column||another one||et cetera|

每一行都有我想要的内容,所以我尝试了:

:%s/\[\[(.+?)\]\]/\1

但我得到了错误

E486: Pattern not found: \[\[(.+?)\]\]

答案1

我将首先剪切内容,然后在 vi 中打开它:

cat wikifile.txt | cut -d \| -f 4 > foo
vi foo

两个步骤,但是我总是不用多想就能记住这两个步骤。

答案2

尝试

:%s/.*\[\[\(.*\)\]\].*/\1/

这将返回

what i want

即你需要

  • 转义组括号“(”和“)”,并且
  • 匹配有趣的列的前后部分,因为你想替换它。

答案3

这是你想要的吗 :

1,$ s/^\(.*\[\[\)\(.*\)\(\]\].*\)$/\2/

它从行首检查到[[ -> 将其放入原子 1,句子 -> 原子 2,行尾 -> 原子 3。

然后只显示原子 2。

相关内容