Shell 删除从“开始”开始的所有内容\\&引用;在空白处结束
我有一个文本文件包含:Shell 删除从“开始”开始的所有内容\\&引用;在空白处结束,shell,Shell,我有一个文本文件包含: 台北市\\tai2bei3shi4 警察局\\jing3cha2ju2. 我想删除从\\开始到空白处结束的所有内容。结果如下所示: 台北市 警察局 我怎么做?是否有单行命令?此命令通过以下方式工作: sed的/\\[^]*//g' Sed的替换工作如下:s/regexp/replacement/ regexp部分是\\[^]*,意思是“查找\及其后面的任何非空白字符” replacement为空,因为我们希望将匹配的regexp部分替换为空 g意味着应在每一行上执
台北市\\tai2bei3shi4 警察局\\jing3cha2ju2.
我想删除从\\
开始到空白处结束的所有内容。结果如下所示:
台北市 警察局
我怎么做?是否有单行命令?此命令通过以下方式工作:
sed的/\\[^]*//g'
Sed的替换工作如下:s/regexp/replacement/
部分是regexp
,意思是“查找\\[^]*
及其后面的任何非空白字符”\
为空,因为我们希望将匹配的replacement
部分替换为空regexp
意味着应在每一行上执行尽可能多的更换g
台北市警察局\\jing3cha2ju2.
不是
台北市 警察局代码>
但是如果你想得到台北市 警察局代码>:
sed -r 's/\\\\[^ ]+( |\.)//g' file.txt
产生以下输出:
台北市警察局
通过添加>file2.txt
\\\
您必须同时替换两个角色,这就是为什么其中有四个角色
[^]+
不包含空格的一系列字符
(|\)
一个空格或一个点(点必须被替换)
-r
因此,您不必根据您的输入来替换方括号或圆括号sed行:
sed 's/[0-9a-zA-Z.\\\\]*//g' file
测试
kent$ echo "台北市\\tai2bei3shi4 警察局\\jing3cha2ju2."|sed 's/[0-9a-zA-Z.\\\\]*//g'
台北市 警察局
您可以使用搜索和替换实用程序。搜索模式并将其替换为空白。如果删除从\\开始并在空白处结束的所有内容,您将得到台北市警察局\\jing3cha2ju2.
非台北市 警察局代码>
kent$ echo "台北市\\tai2bei3shi4 警察局\\jing3cha2ju2."|sed 's/[0-9a-zA-Z.\\\\]*//g'
台北市 警察局