gpt4 book ai didi

bash - 如何在 Mac OS 文件的第一行之前插入文本

转载 作者:行者123 更新时间:2023-11-29 09:29:18 29 4
gpt4 key购买 nike

尝试编写一个 bash 脚本,在给定文件夹的每个文本文件中添加一个新行,我尝试了 sed。我有一个工作代码,在第 1 行添加文本“blablabla”

但是如何:

  • 我要在这个“blablabla”文本后添加回车吗?
  • 对给定文件夹中的所有文件 (.txtaa/.txtab/.txtac) 执行此操作?

这是我的代码

#!/bin/bash

sed '1i\
blablabla' miFile.txt > myNewFile.txt

最佳答案

您可以使用符合 POSIX 的面向行的文本编辑器 ex 用于快速就地编辑文件。

这应该适用于 Mac OS 或任何可用的 POSIX 兼容 shell。在您的脚本中,假设您想对文件夹中的每个文件执行此操作,只需执行以下脚本即可。

在运行脚本之前,您必须您想要的文件夹中。例如cd myFolder/并运行它:

因为您声称有多个文件扩展名,所以您可以使用 glob 模式作为 *.txt*

#!/usr/bin/env bash

shopt -s nullglob
for file in *.txt*; do
ex -sc '1i|blablabla' -cx "$file"
done

或者如果您从父文件夹运行,您可以修改循环构造以具有

for file in myFolder/*.txt*; do

如链接页面中所述,1选择文件的第一行,i|<text>插入 <text>您选择的后跟换行符和 x关闭文件。

请记住,此操作是就地 完成的,这意味着您无法恢复被修改的文件。请确保您绝对确定要完成的替换文本,或者)在执行此操作之前备份一次文件夹。

关于bash - 如何在 Mac OS 文件的第一行之前插入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50191398/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com