我有一个文件列表,我想使用sed进行批量编辑。
header.txt的输出footer.txt的输出修改为所有文件。假设我必须替换文件夹中所有文件的当前XML头,如下所示:
发自:
至:
此外,我还必须将文件footer.txt内容的输出添加到目录中的所有文件中。
请引导我通过正确的步骤。
发布于 2020-10-13 23:50:31
您可以使用sed的r命令分别在1和$地址读取和插入页眉和页脚文件。
假设GNU (基于您的“linux”标记),并且目录中的文件数量不足以超过最大命令长度,那么
sed -i -e '1r header.txt' -e '1d' -e '$r footer.txt' dir/*将header.txt和footer.txt的内容添加到dir中的每个文件中。
Note,即 -i对要覆盖的原始文件进行causes -您最好用-s代替-i测试它和/或通过将-i更改为-i.bak来进行备份。
发布于 2020-10-14 05:23:01
假设您希望从所有文件中删除第一行并插入页眉,并使用bash在末尾追加页脚:
for f in *.xml; do
tmp=$(mktemp)
(
cat header.txt
tail -n +2 "$f"
cat footer.txt
) > "$tmp" && mv "$tmp" "$f"
donehttps://unix.stackexchange.com/questions/614392
复制相似问题