今天更新两条实用的命令,分别实现批量修改文件名和批量替换文件中的内容。
操作系统:linux系统(笔者使用的是ubuntu20)
- 批量修改文件名:
进入需要修改的文件名目录,
rename 's|A|D|g' *
A
代表将被查找的字符串,
D
代表用来替换的字符串,
*
表示将此命令作用于该目录下所有文件名。
- 批量替换文件内容:
sed -i "s/old/new/g" `ls`
-i
可以直接修改文件内容,
s
替代命令
/ / /
分割符,可以用任何字符,但通常用/
表示,
old
代表将被查找的内容(数字/字符…),
new
代表用来替换的内容(数字/字符…),
g
全局替换标志。默认情况下,sed逐行读取文件,并且仅更改SEARCH_REGEX在一行中的首次出现。 提供替换标志后,所有出现的事件都将被替换。
ls
表示将此命令作用于该目录下所有文件。(ls前后并非单引号,而是Tab键上面那个键。)
2021.03.17更新
一次执行多个bash script.
parallel -u ::: './script.sh 1' './script.sh 2' #(and so forth)
所有的script将被并行执行。
-u 标准输出,不将输出写进同一个文件里。
完毕!
参考文章:
https://linuxize.com/post/how-to-use-sed-to-find-and-replace-string-in-files/