【发布时间】:2021-01-16 05:10:18
【问题描述】:
我在不同的子目录中有许多文件,其中一个子目录在第 6 行包含一个包含正确信息的文件,而其他子目录仅包含虚拟信息。目录结构是这样的:
Folder-1
Subfolder-1
File-A
SubfFolder-2
File-B
Subfolder-3
File-B
Folder-2
...
Folder-3
...
Subfolder-1 中的File-A 包含第 6 行中的正确文本,这是每个 Folder 都不同的字符串。 File-B 包含虚拟文本
E1 E2 E3 E4 E5 N
在第 6 行。这个虚拟文本在每个 Folder 中也是相同的。我需要在每个Folder 中用正确的行替换这个虚拟行,以便一个Folder 中的每个File 在第6 行包含相同的字符串。
我的猜测是 sed 是正确的工具,但我不知道如何设置它以使用不同的字符串作为输入。基础是
sed -i 's/String1/String2/g' file
我设想的粗略草图是:
for i in */;
do for j in 2 3;
do sed 6th line in "$i"Subfolder-1/File-A > 6th line in "$i"Subfolder-"$j"/File-B % Magic needed
done
done
【问题讨论】:
标签: bash sed text-processing