文字クラスを使用して数値リストを郵便番号形式で指定する

文字クラスを使用して数値リストを郵便番号形式で指定する

番号リストを郵便番号形式(5桁)でフォーマットしようとしています。私はこのsedユーティリティを使ってこれを行います。file.txt「23232334」、「3434654」、「33532」、「94607」が含まれているとします。私のスクリプトには次のように書きました。

sed -n '/^[0-9] [0-9] [0-9] [0-9] [0-9]$/p' file.txt

しかし、うまくいきません。

私も試しました

sed -n '/^[[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]]$/p' file.txt

キャラクタークラスについて私が理解したところによれば、これらのステップはうまくいくでしょう。しかし、なぜ出力が出ないのかわかりません。

助けてください

ありがとう

ベストアンサー1

コマンドが機能しない理由はいくつかあります。まず、数字の間にスペースがあり、スペースでsed区切られた数字を見つけます。第二に、 を作成するとき、^5$つの数字が行全体を占有しなければならないので、例の4つの数字のうち最後の2つだけがテストに合格します。あなたが欲しいものは何ですか?

おすすめ記事