Linux sed命令:如何修改多个文件的内容

・1 分钟阅读

Linux sed FAQ:如何使用sed命令一次修改多个文件?

下面是我用来修改一组文件的Linux/unix sed命令文件:

s/^M//g
1,2d
$d

我把这三行放在一个叫sed.cmds的文本文件中。

之后,我简单地从shell script调用这个sed脚本,以下是shell script的内容:

#!/bin/sh
# modify every *.txt file in the current directory
for i in `ls *txt`
do
 sed -f sed.cmds < $i > ${i}.new
done

我在shell script中所做的是:

  1. 获取当前目录中以扩展名"txt"结尾的所有文件的列表,
  2. 在每个文件上运行sed命令,从原始文件($i )读取,并将扩展名".new"附加到原始文件的结尾,
  3. 请注意,我正在使用sed解释器的"-f sed.cmds"参数读取sed命令文件,

还要注意,可以使用mv命令将.new文件重命名回.txt文件,但是,我将把它留给读者进行练习。

Syq2803 profile image