###前提・実現したいこと
awkコマンドの練習をしています。不特定多数のテキストから数字のみを取り出しそれを行毎に表示し最後に合計を出したいと思っています。
###試したこと
awk -F '[^0-9]+' '{print $0}' test.txt
###発生している問題・エラーメッセージ
区切り文字に数字以外の正規表現 [^0-9]+ を使用し、print $1 $2とやっていけば出てくると思ったのですが
先頭に数字がない場合、例えば 「ABC123DEF431」だったとすると
区切り文字が先に来ることになるので$1がブランクになり$2に123が格納されます。
先頭に数字以外の文字がある場合その行は数字が来るまでの文字をどう削除すればいいのか
(例えばBEGINで処理できるのか)
また$0だと行のまま数字以外も含め入力がそのまま出るので$1 $2 $3 ....と書かなくても格納されたその行の数字をすべて表示させるには
どうすればいいのか調べても具体的な例が出てこないため困っております。
小数点や記号も文字として考慮して設計してます。
0も数字扱いです。
合計に関してはENDで処理すればできるだろうと考えています。
ご教示いただけますと幸いです。
よろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。