如何按模式设置 csplit 输出文件名?

如何按模式设置 csplit 输出文件名?

有没有办法csplit通过模式设置输出名称?我想将主机的 ssh-config 拆分到相应的文件中。

如果有没有解决方案csplit我也很高兴。

答案1

不可以,csplit只能在输出文件名中使用整数编号。如果您希望输出文件基于内容,请使用其他工具,例如 awk 或 perl。

awk '
    BEGIN {out="_"}
    $1 == "Host" {if ($2 ~ /\//) exit(1); out=$2}
    {print >out}'

请注意,此代码仅执行基本的错误检查(我至少确保它只会写入当前目录)。不要在不受信任的文件上运行它。

相关内容