我有一张来自维基百科的大表格(来自维基来源),我想提取其中的一列,我在 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。