如何使用 sed 命令替换目录和子目录中存在的文件中的文本?
让我们考虑一种情况,我们有两个目录,例如d1和d2,并且这两个目录都包含一些文件,这些文件可能相同或不同。现在我们要使用sed命令来替换可能出现在 d1 目录或 d2 目录中的某些文件中的特定文本。
为此,我们必须熟悉sed命令,因为sed命令可以用来解决上述问题。
让我们首先探索sed命令,它是流编辑器的缩写。此命令用于对特定文件执行不同的功能,如查找、替换、插入等。
让我们探讨一下我们有两个目录d1和d2并且这两个目录中都包含一些文件的情况。
考虑终端输出来描述下面显示的这两个目录 -
immukul@192 linux-questions-code % ls -ltrtotal 0
drwxr-xr-x 5 immukul staff 160 Jul 5 20:03 d1
drwxr-xr-x 4 immukul staff 128 Jul 5 20:03 d2
现在第一个目录d1的内容看起来像这样 -
immukul@192 d1 % ls -ltrtotal 0
-rw-r--r-- 1 immukul staff 0 Jul 5 20:03 1.txt
-rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt
-rw-r--r-- 1 immukul staff 0 Jul 5 20:03 5.tx
现在第一个目录d2的内容看起来像这样 -
immukul@192 d2 % ls -ltrtotal 0
-rw-r--r-- 1 immukul staff 0 Jul 5 20:03 2.txt
-rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt
现在,如果我们打印 d1 目录中存在的文件的内容,我们将得到如下内容 -
immukul@192 d1 % cat 1.txtorange
immukul@192 d1 % cat 3.txt
immukul@192 d1 % cat 5.txt
orange
我们可以看到文件 1.txt 和 5.txt 中包含一个字符串 'orange'。
现在,如果我们打印 d2 目录中存在的文件的内容,我们将得到如下内容 -
immukul@192 d2 % cat 2.txtorange
immukul@192 d2 % cat 4.txt
我们可以看到文件中2.txt包含一个字符串“orange”。
现在我们想使用单个命令将所有文件中的字符串 'orange' 替换为 'apple',为此我们在终端中键入以下命令
find ./ -type f -exec sed -i -e 's/orange/apple/g' {} \;输出结果
immukul@192 d1 % cat 1.txtapple
immukul@192 d1 % cat 3.txt
immukul@192 d1 % cat 5.txt
apple
immukul@192 d2 % cat 2.txt
apple
immukul@192 d2 % cat 4.txt
以上是 如何使用 sed 命令替换目录和子目录中存在的文件中的文本? 的全部内容, 来源链接: utcz.com/z/361683.html