文字クラスを使用して数字のリストを郵便番号形式にフォーマットする

文字クラスを使用して数字のリストを郵便番号形式にフォーマットする

数字のリストを郵便番号形式 (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 つだけがテストに合格します。これが必要なことですか?

関連情報