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



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

所以我正在看:

  1. 如何识别数据块中的模式
  2. 如何在图案起始位置之前插入 CR。

例:

块是1234abcde56785abcde53453FEFDabcde

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

1234
abcde56785
abcde53453FEFD
abcde

感谢社区!

你的模式根本不容易理解,所以下次请尝试添加一些信息:

您可以使用以下sed命令:

echo "1234abcde5678abcde53453FEFDabcde" | sed -E 's/(abcde[0-9]*[A-Z]*)/n1/g'                                                
1234
abcde5678
abcde53453FEFD
abcde

如果您需要有窗口EOL,请将其更改为

sed -E 's/(abcde[0-9]*[A-Z]*)/rn1/g'

有关sed的说明:

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

有关正则表达式的说明:

演示

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

正则表达式起点:http://www.rexegg.com/regex-quickstart.html

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

awk '{gsub(/abcde/,"n&")} 1' Input_file

OR(在abcde的情况下,字符串不会总是相同的,它可以是任何小写字母单词(

awk '{gsub(/[a-z]+/,"n&")} 1'  Input_file

最新更新