簡體   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