【问题标题】:Splitting up a large file in BASH using a delimiter使用分隔符在 BASH 中拆分大文件
【发布时间】:2015-03-04 18:58:07
【问题描述】:

我正在编写一个 BASH 脚本,它接收一个本地文件,并使用一个奇怪的分隔符将其拆分为多个文件。

我要使用的分隔符是:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

分隔每条记录。

【问题讨论】:

  • 查看csplit 实用程序。

标签: linux bash file


【解决方案1】:

如果您的文件在自己的行中有分隔符,您可以这样做:

delim="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
i=1
while read line
do
    if [ "$line" == "$delim" ]
    then
        i=$((i+1))
    else
        echo $line >>your_file_$i
    fi
done <your_file

如果您的文件不在此配置中,则表示您有内联分隔符。因此,您只需使用 sed "s/${delim}/\r${delim}\r/g" 即可。

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    相关资源
    最近更新 更多