批量复制、删除一个文件到多个文件夹下 batch copy or delete same file in different directories

本想通过cp +通配符实现,但是会失败或者通过pipline tube “|” 传参, 比如

IF you want to copy a file to a batch of different directories, like that

 

cp fileA directory* 

通配符测试失败,会失败,Regular exresssion Failed

因此可以使用其它方法实现

首先把目录 有规律的文件夹通过正则表达筛选出来

ls directory* >batch.sh
chmod +x batch.sh

然后vim 编辑

批量在行首加入信息,然后执行脚本即可。

insert text at the head of each line

行首 :%s/^/your_word/

行尾 :%s/$/your_word/

按键操作:

注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。

删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。

PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。

使用替换命令:

在全部内容的行首添加//号注释

:% s/^/\/\//g

在2~50行首添加//号注释

:2,50 s/^/\/\//g

在2~50行首删除//号

:2,50 s/^\/\///g

 

如果遇到特殊字符,可用转义字符(Escape String)实现,如"/"

 

:%s/\\/\/

  

Ref:

https://www.cnblogs.com/Dennis-mi/articles/5939635.html

posted @ 2021-07-11 07:58  千家诗  阅读(287)  评论(0编辑  收藏  举报