首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将第一行替换为file1的输出,并将文件2的内容添加到文件夹中的所有文件中

问将第一行替换为file1的输出,并将文件2的内容添加到文件夹中的所有文件中
EN

Unix & Linux用户
提问于 2020-10-13 21:43:02
回答 2查看 437关注 0票数 0

我有一个文件列表,我想使用sed进行批量编辑。

  1. 将目录中所有文件的第一行替换为header.txt的输出
  2. 将footer.txt的输出修改为所有文件。

假设我必须替换文件夹中所有文件的当前XML头,如下所示:

发自:

代码语言:javascript
复制

至:

代码语言:javascript
复制

此外,我还必须将文件footer.txt内容的输出添加到目录中的所有文件中。

请引导我通过正确的步骤。

EN

回答 2

Unix & Linux用户

发布于 2020-10-13 23:50:31

您可以使用sed的r命令分别在1和$地址读取和插入页眉和页脚文件。

假设GNU (基于您的“linux”标记),并且目录中的文件数量不足以超过最大命令长度,那么

代码语言:javascript
复制
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来进行备份。

票数 0
EN

Unix & Linux用户

发布于 2020-10-14 05:23:01

假设您希望从所有文件中删除第一行并插入页眉,并使用bash在末尾追加页脚:

代码语言:javascript
复制
for f in *.xml; do
    tmp=$(mktemp)
    ( 
        cat header.txt
        tail -n +2 "$f"
        cat footer.txt
    ) > "$tmp" && mv "$tmp" "$f"
done
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/614392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档