friend 们、同事们、油嘴滑舌的自称认识者以及受人尊敬的职业生涯中最耻辱的受害者,
当我尝试在 Max OSX 中执行简单的 UNIX 操作时,我会感到一种明显的疲劳。有人可以告诉我如何使用 sed (不是 awk,不是 perl,除了 sed 之外什么都不是)来获取包含以下内容的 file.txt:
Oh my I have Mac fatigue
并使其看起来像这样:
Oh my I have Mac fatigue
如果您确实在 Mac OSX Lion 中执行此操作,非常感谢。 (编辑:也不是 Mountain Lion,是不同的操作系统)。我只是花了很长时间在谷歌上搜索一般回答 linux 或 UNIX 的人,遗憾的是这没有多大帮助。
我在标准模式匹配的幸福的、早已被遗忘的日子里尝试了很多东西,当时人们可以快速说出 UNIXy 命令,瞧!他们会表现:
cat file.txt | sed 's/ */ /g' - O h m y I h a v e M a c f a t i g u e
cat file.txt | sed 's/ \+/ /g' - no effect
cat file.txt | sed 's/\s\+/ /g' - no effect
cat file.txt | sed -E -e 's/ */ /g' - O h m y I h a v e M a c f a t i g u e
告诉我在 Linux 机器上使用 sed 会让我微笑,但它不会得到赞成:) 提前致谢。不确定如果没有 StackOverflow 我会做什么。
最佳答案
这有效(在原生 OS X 10.8.3 上测试):
cat file.txt | sed -e "s/ */ /g"
(请注意,星号前有两个个空格)
或者删除useless use of cat :
sed -e "s/ */ /g" < file.txt
关于macos - 在 Mac OSX Lion 中,如何使用 sed 将多个空格替换为单个空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822711/