微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在许多文件中,用制表符替换空格

我试图找到一种方法,用制表符空格“ 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
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。