首页 > 解决方案 > 在 unix 中使用 sed 将文件中的所有单词转换为 *

问题描述

我使用了以下命令:

$ cat * | sed  's/./*/g' | head -50

但是此代码也将空格转换*为。我不想要那个。

例子:

Hi my name is Mark
I am a good guy

预期的:

** ** **** ** ****
* ** * **** ***

标签: linuxshellunixsed

解决方案


请参阅上面的 David C. Rankin 的评论......

这可以很sed容易地实现:

echo 'Hi my name is Mark I am a good guy' | sed 's/[^ ]/*/g' 
** ** **** ** **** * ** * **** ***

或与tr

echo 'Hi my name is Mark I am a good guy' | tr '[:graph:]' '*'
** ** **** ** **** * ** * **** ***

推荐阅读