繁体   English   中英

用Unix代替文本中的所有单词,但使用Linux和空格

[英]Substitute all words in text by Unix but Linux and whitespaces

我有这样的文字:

Linux提供了一些功能强大的管理工具和实用程序,可以帮助您有效地管理系统。 如果您不知道这些工具是什么以及如何使用它们,则可能会花费大量时间尝试执行基本的管理任务。 本课程的重点是帮助您了解系统管理工具,这将帮助您成为有效的Linux系统管理员。 立即获取Linux Sysadmin课程!

我想用sed工具将Unix中的所有单词EXCEPT Linux和whitespaces替换为Unix。 有任何想法吗? 我已经试过了:

sed -e 's/[^linux]/linux/g' -e 's/[[:space:]]/[[:space:]]/g'

但是它只是输出unix而没有空格。

使用正则表达式通常很难做到“一切都好”。 您可能可以分3个步骤完成,首先将Linux更改为特殊的唯一字符,然后将所有单词更改为Unix,然后将魔术字符更改为Linux。

sed -r -e 's/Linux/@/g' -e 's/[^ @,;\.]+/Unix/g' -e 's/@/Linux/g'

上面也保留了标点符号。

[...]始终定义一个字符类,因此它匹配一个字符。 因此[^linux]不是非Linux单词,而是不是linux的单个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM