国、都市、州の情報などを含むファイルがあります。ファイルの内容は次のようになります: (質問に関連する部分のみを表示)
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