今日正規表現について読み始めたばかりで、以下でやろうとしていることが可能かどうか質問がありますか?
電話番号を含むファイルがあり、一部は (xxx) xxx-xxxx 形式ですが、一部は xxx-xxxx 形式です。
たとえば、電話番号リスト:
(855) 422-6932
(899) 991-9054
(855) 912-7326
(833) 390-8072
934-2368
731-7056
251-5372
(855) 137-6285
(855) 294-5537
(844) 680-7479
したがって、目的は、(xxx) xxx-xxxx 形式ではないすべての行に (000) を追加することです。
私がこれまでに取り組んできたことは、基本的に出力をgrepして正規表現パターンに一致する新しいファイルに書き込み、別のgrep出力を実行することですが、今回は正規表現に一致せず、同じファイルに追加します。以下のように。
grep "([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}" testfile > newtestfile ; grep -v "([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}" testfile | sed 's/^/(000) /' >> newtestfile
しかし、これは実際にはリストの順序を変更します。新しいファイルは
(855) 422-6932
(899) 991-9054
(855) 912-7326
(833) 390-8072
(855) 137-6285
(855) 294-5537
(844) 680-7479
(000) 934-2368
(000) 731-7056
(000) 251-5372
順序を変更せずにこれを行う方法はありますか? 私はsed、awk、nlを使って研究してきましたが、今のところ何もありません。私は初心者です..
ご協力いただきありがとうございます。