说我有300个单词的列表:
foo
bar
..
..
zzz
我想
E.G:[“ foo”,“ bar”,..,“ zzz”]
在vi编辑器中。我该怎么做?
答案 0 :(得分:0)
这是一个bash实现...我认为可能有一种在vi中运行脚本的方法,但是我不知道为什么有人会这样做。
#/bin/bash
inputFile=path/to/your/file.txt
str=
while IFS='' read -r line || [[ -n "$line" ]]; do
str=$str\"$line\",;
done < $inputFile.txt
echo [ ${str%?} ] > result.txt
答案 1 :(得分:0)
我们假设文件的每一行都包含一个单词。
然后一系列的vi命令将完成任务:
:%s/.*/"&"/
^G1G300J:s/" "/","/g
I[^[A]^[
%s/.*/"&"/
在每一行中进行搜索和替换,并用引号引起来(键入RETURN以执行)^G
是CTRL-G-注意行数(我们假设它显示300)1G
移至第一行300J
将后面的300行和空格连接在一起:s/" "/","/g
用逗号替换引号之间的空格(键入RETURN以执行)I[
将方括号放在行首。 ^[
是ESC以完成输入A]
将括号附加到行尾。 ^[
是ESC以完成输入作为一种选择,我开始很喜欢jq
。从shell命令行执行此特定任务变得很简单:
jq <wordlist -Rc '[inputs]'
或在vi中调用,直接对正在编辑的单词表进行操作:
1G!Gjq -Rc '[inputs]'