国、都市、州情報、その他の情報を含むファイルがあります。ファイルの内容は次のとおりです。 (質問に関連する部分のみが表示されます)
Some lines (rows) of text
...
United States
Memphis, TN 38116-3252
...
More lines of text
...
United States
Austin, TX 78726
...
私がやりたいことは、郵便番号の前やTNの後に改行文字を追加し(例えば)、「、」を改行文字に置き換えることです。しかし、私の考えでは、2番目の部分が簡単になると思います。
必須形式:
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
...
最終目標は、データを次のスプレッドシートにインポートすることです。
Some info | Country | State | City | Etc.
abc | United..| Texas | Austi| zcx
私はsed、awkなどを使用できるすべてのものに開いています。
答え1
私はこれを使用しますsed
:
sed -E 's/, /\n/;s/([A-Z]{2}) /\1\n/' States
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
最初の式は、s/, /\n/
カンマの後にスペースが続くものを検索し、それを改行文字に置き換えます。
2番目の式は、s/([A-Z]{2}) /\1\n/
スペースが続く2つの大文字を検索して改行文字に置き換えます。
sed --version
sed (GNU sed) 4.2.2