在许多文件中,用制表符替换空格。

我试图找到一种方法,用制表符空格“ 1”替换逗号“ 0”,或者实际上也可以是单个空格。我想使用BASH做到这一点,我想知道Vim是否可以完成这些任务? 我知道我可以手动或通过命令行对一个文件执行以下操作:
vi [file] -c :%s/\\,/\\t/g
是否可以在文件循环中执行此操作,例如:
for i in *; do [vi command here]; done
谢谢你的帮助     
已邀请:
对于此任务,
tr
可能比
vi
更好的选择:
for i in *
do
   cat $i | tr \',\' \'\\t\' > $i.tmp
   mv $i.tmp $i
done
    
不完全是vi,但我认为更合适
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
    

要回复问题请先登录注册