我有多个如下所示的xml文件:<TEST><TEST><TEST><TEST><TEST><TEST><TEST><TEST><TEST><TEST>
我想为每个“ <”打一个新的样子,并摆脱每个“>”。
我想通过正则表达式执行此操作,因为我正在研究的是* nix。
答案 0 :(得分:2)
regex
无需进行如此简单的搜索和替换。您想将<
替换为\n<
,并将>
替换为空字符串。
假设您的内容位于文件input.txt
中,此简单的sed
命令行即可完成此任务:
sed 's/</\n</g;s/>//g' input.txt
有两个sed
命令,它们之间用;
隔开:
s/</\n</g
s/>//g
两个命令均为s
(搜索并替换)。 s
命令要求搜索regex
(此处无正则表达式),替换字符串和一些可选标记,并用/
分隔。
第一个s
搜索<
并将其替换为\n<
。 \n
是regex
和许多Unix工具中的换行符的常用符号(即使不涉及regex
时也是如此)。
第二个s
搜索>
并将其替换为空白。
两个s
命令都使用g
( global )标志,该标志告诉他们进行每行可以做的所有替换。 sed
对输入的每一行运行每个命令,默认情况下,s
在第一次替换(一行)后停止。