我试图找到一种方法来用标签空格\t
替换逗号,
,或者实际上它也可以是单个空格。我想用BASH来做这个,我想知道Vim可以完成这样的任务吗?用许多文件中的标签空格替换逗号
我知道我能为一个文件,做到这一点通过命令行手动或:
vi [file] -c :%s/\,/\t/g
有没有可能做到这一点上的文件,如一个循环:
for i in *; do [vi command here]; done
感谢您的帮助
我试图找到一种方法来用标签空格\t
替换逗号,
,或者实际上它也可以是单个空格。我想用BASH来做这个,我想知道Vim可以完成这样的任务吗?用许多文件中的标签空格替换逗号
我知道我能为一个文件,做到这一点通过命令行手动或:
vi [file] -c :%s/\,/\t/g
有没有可能做到这一点上的文件,如一个循环:
for i in *; do [vi command here]; done
感谢您的帮助
不完全是六,但我认为更合适
for f in * ; do sed -i -e 's/,/\t/g' $f ; done
对于vi也是如此(就像你的例子)。但更短的方法是
sed -i -e 's/,/\t/g' *
是,VIM就可以这样做非常好。一个技巧是将其作为ex
而不是vim
来启动它。这是同一个程序,ex
只是vim
的链接,但是当它作为ex
启动时,它会在CLI中而不是在屏幕模式下启动。
so ross$ for i in /tmp/f?; do
> ex $i << \eof
> g-,-s// /g
> x
> eof
> done
我真的需要考虑使用'ex'作为'vim'。当我搜索''用命令行运行多个命令与vim'时,'ex'出现了。感谢您坚持使用vim的答案+1 – Amit 2011-04-12 20:57:17
vi命令的问题在于它在运行后输入文件。所以我不认为这是适当的命令在循环中使用 – Amit 2011-04-12 20:42:11
如果你们可以想到一个更简单的方式顺便说一句,请让我知道! – Amit 2011-04-12 20:43:49
你有没有试过sed? sed“s/\,/ \\ t/g”your_file >> modif_your_file – 2011-04-12 20:44:33