如何使用sed或grep处理此问题

如何使用sed或grep处理此问题,sed,newline,Sed,Newline,我有一个包含20000行的文本文件,其中一些行内容为1个符号或2或3个符号: [\x{0990}-\x{099D}] 我想在行中最后一个符号后添加新行\n,如: 之前: 之后: Alpha beta @#$ gama 您需要搜索字符串: ([!@#$%^&*()_+=~`-]{1,3})([^!@#$%^&*()_+=~`-]*)$ 并替换为: \1\n\2 测试 符号列表可以根据您的需要进行调整。我在键盘上、数字键上添加了大部分符号。你是说这样的 sed 's/[\x0

我有一个包含20000行的文本文件,其中一些行内容为1个符号或2或3个符号:

[\x{0990}-\x{099D}]
我想在行中最后一个符号后添加新行\n,如: 之前:

之后:

Alpha beta @#$
gama

您需要搜索字符串:

([!@#$%^&*()_+=~`-]{1,3})([^!@#$%^&*()_+=~`-]*)$
并替换为:

\1\n\2
测试


符号列表可以根据您的需要进行调整。我在键盘上、数字键上添加了大部分符号。

你是说这样的

sed 's/[\x0990-\x099D]\{1,3\} /&\n/' file.txt
解释

s                              # use substitution
/                              # separator
[\x0990-\x099D]\{1,3\}         # 1 to 3 symbols
/                              # separator
&\n                            # replace with symbols\n
/                              # separator

字符是
ঐ঑঒ওঔকখগঘঙচছজঝ,您可以在
sed
中明确使用它们:

sed -E 's/(ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3}[[:space:]]*/&\n/g'
完全就地命令:

sed -i -E 's/(ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3}[[:space:]]*/&\n/g' file; # GNU sed
sed -E -i '' 's/(ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3}[[:space:]]*/&\n/g' file; # Free BSD sed
看一看

这里,

  • (ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3}
    是一个括号表达式,它匹配必需的字符1、2或3次
  • [[:space:][]*
    -0+空格
&\n
替换模式插入整个匹配项,然后添加换行符

提示:要修剪这些字符后的空格,请使用

sed -E 's/((ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3})[[:space:]]*/\1\n/g' 

谢谢,已经成功了,请告诉我如何将符号转换为unicode,如“a”转换为\04321。@Tomatow我正在使用它来快速检查这些东西。
sed -E 's/((ঐ|঑|঒|ও|ঔ|ক|খ|গ|ঘ|ঙ|চ|ছ|জ|ঝ){1,3})[[:space:]]*/\1\n/g'