2

友人、同僚、知るべき口実の主張者、そして最も屈辱的なキャリアの犠牲者として尊敬されている仲間、

私は、Max OSX で単純な UNIX 的なことをしようとしたときに得られる独特の疲労に苦しんでいます。これを含むfile.txtを取得するためにsed(awk、perl、sed以外のものではない)を使用する方法を教えてください:

Oh         my I         have Mac                 fatigue

次のようにします。

Oh my I have Mac fatigue

実際に Mac OSX Lion でこれを実行していただき、ありがとうございます。(編集:Mountain Lionでもなく、別のOSでもあります)。私は、LinuxまたはUNIX全般について答えるグーグルの人々に長い時間を費やしましたが、残念ながらあまり役に立ちません。

私は、標準的なパターン マッチングの忘れ去られた至福の日々から、多くのことを試しました。当時は、UNIX のコマンドをガタガタ鳴らすことができたのです。彼らは次のように振る舞います:

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 なしで何をするかわかりません。

4

1 に答える 1

5

これは機能します(ストックOS X 10.8.3でテスト済み):

 cat file.txt | sed -e "s/  */ /g"

(アスタリスクの前に2 つのスペースがあることに注意してください)

またはcat の無用な使用を取り除くには:

 sed -e "s/  */ /g" < file.txt
于 2013-04-04T22:20:37.440 に答える