sed 语法删除某些元素

sed 语法删除某些元素

我想使用“sed”删除“\n”、“\r”、“已连接”。和字符串中的“”。

echo "   Connected. 
97  " | sed -e 's/[Connected.|\n|\r\ ]//g'

我期望返回的结果是“97”。

答案1

\n经典 (POSIX) 无法以这种方式删除它们sed,它们是行分隔符,而不是要进行替换的字符串的一部分s///。之后应将其删除tr

sed -e 's/Connected\.//g' | tr -d ' \r\n'

(因为我们使用了tr,所以我们让它删除每个感兴趣的字符)

s///但是,您可以使用GNU 的单个指令sed,它可以通过以下选项一次操作整个文件-z(这对于大文件来说不是一个好主意):

sed -z -r -e 's/Connected\.|\n|\r| //g'

相关内容