如何删除前3行多个.md文件与Mac终端?



我需要删除结构如下的多个降价文件的前三行:

|- Folder
| - 01-07-22.md
| - 02-07-22.md
| - 03-07-22.md
| - ...

我想用Mac终端做这件事(如果可能的话),因为我没有任何编码语言的专业知识,因此我的计算机上没有安装任何编码平台。

我还想知道,除了删除前3行,是否可以添加"##"在每个文件的开头。

哪些是有效的方式:

  • 这项工作:
    sed -i '' '1,3d' Folder/*.md
    
  • 下面的命令也可以工作:
    sed -i '' '1i
    ##' *.md
    
    但是它不会在第一行之前添加新行。
  • 这根本不起作用:
    sed -i '' '1s
    /^/##/' *.md
    

如何在开始处添加空行和"##"现在开始的第二行?解释:从这个:

# First line of example .md file
Second line of example .md
...

:


### First line of example .md file
Second line of example .md
...

您应该能够使用(GNU)sed。我希望Mac版本支持所有必需的标志和功能。

删除前3行:

sed -i '1,3d' Folder/*.md

在每个文件前加上##行:

sed -i '1i##' Folder/*.md

在现有的第一行前加上##:

sed -i '1s/^/##/' Folder/*.md

原始文件将被覆盖,不需要确认,但您可以指定-i.bak创建备份文件,例如Folder/01-07-22.md.bak

指定-i ''

禁止创建备份文件。某些sed实现可能总是在-i之后需要参数,所以使用-i.bak-i .bak

如果在行前加前缀不起作用,请尝试不同的语法(换行符很重要):

sed -i .bak '1i
##' Folder/*.md

如果这也不起作用,还有另一种形式可以调用sed:

sed -i .bak -e '1i' -e '##' Folder/*.md

如果你想修改第一行在它之前添加一个空行,例如转换

1
2
3


##1
2
3

将要求您使用以下命令:

sed -i .bak '1s/^/##/;1i
' Folder/*.md

最新更新