我有一个20000行的文本文件,其中某些行内容为1个符号或该范围内的2或3:
[\x{0990}-\x{099D}]
我想在该行中的最后一个符号之后添加新行\ n: 之前:
Alpha beta @#$ gama
之后:
Alpha beta @#$
gama
答案 0 :(得分:0)
您需要搜索字符串:
([!@#$%^&*()_+=~`-]{1,3})([^!@#$%^&*()_+=~`-]*)$
并替换为:
\1\n\2
测试here。
可以根据需要调整符号列表。我在键盘上的数字键上添加了大多数符号。
答案 1 :(得分:0)
您的意思是这样的吗?
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
答案 2 :(得分:0)
字符为ঐওঔকখগঘঙচছজঝ
,您可以在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'