String 使用shell脚本在文件中插入CR字符

String 使用shell脚本在文件中插入CR字符,string,bash,shell,file,unix,String,Bash,Shell,File,Unix,我有一个巨大的数据块,我想通过在一些已识别的模式之前插入回车符来将其拆分成几行。 (在这个阶段,我不想使用LinuxSplit命令) 所以我在看: 如何识别数据块中的模式 如何在图案开始位置之前插入CR 例如: 该块是1234abcde56785abcde53453FEFDabcde 结果在文件中应如下所示: 1234 abcde56785 abcde53453FEFD abcde 谢谢社区 您的模式根本不容易理解,因此下次请尝试添加一些信息: 您可以使用以下sed命令: echo "1234

我有一个巨大的数据块,我想通过在一些已识别的模式之前插入回车符来将其拆分成几行。 (在这个阶段,我不想使用LinuxSplit命令)

所以我在看:

  • 如何识别数据块中的模式
  • 如何在图案开始位置之前插入CR 例如:

    该块是
    1234abcde56785abcde53453FEFDabcde

    结果在文件中应如下所示:

    1234
    abcde56785
    abcde53453FEFD
    abcde
    

    谢谢社区

    您的模式根本不容易理解,因此下次请尝试添加一些信息:

    您可以使用以下
    sed
    命令:

    echo "1234abcde5678abcde53453FEFDabcde" | sed -E 's/(abcde[0-9]*[A-Z]*)/\n\1/g'                                                
    1234
    abcde5678
    abcde53453FEFD
    abcde
    
    如果需要windows EOL,请将其更改为

    sed -E 's/(abcde[0-9]*[A-Z]*)/\r\n\1/g'
    
    有关
    sed
    的说明:

    • -E
      用于扩展正则表达式支持,否则需要转义字符,如
      (,),+,{,}
    • s/PATTERN/REPLACEMENT/g
      在全局模式下查找和替换的命令
    有关正则表达式的说明:

    • ()
      用于分组和反向引用
    • abcde[0-9]*[A-Z]*
      为了匹配以
      abcde
      开头的所有内容,最后是一些数字和一些大写字母:

    正则表达式起点:

    根据所显示的输出,不完全确定您的需求,请尝试以下内容,并让我知道这是否有帮助

    awk '{gsub(/abcde/,"\n&")} 1' Input_file
    
    或者(在
    abcde
    的情况下,字符串并不总是相同的,它可以是任何小写字母)


    您的分割规则是什么?当您说回车时,您指的是Linux下线
    \n
    ?不需要windows
    \r\n
    EOL right?立即启动!银行@Erwan,酷,再看一次这个链接,一旦有人在SO@RavinderSingh13上的答案上帮助你,你该怎么办:像往常一样回答得很好!
    awk '{gsub(/[a-z]+/,"\n&")} 1'  Input_file