我有一个包含国家、城市和州信息以及其他信息的文件。文件的内容如下所示:(仅与所显示问题相关的部分)
Some lines (rows) of text
...
United States
Memphis, TN 38116-3252
...
More lines of text
...
United States
Austin, TX 78726
...
我想做的是在邮政编码之前或 TN 之后添加换行符(例如),并将“,”替换为换行符。但我认为第二部分会更容易。
所需格式:
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/
搜索逗号后跟空格并替换为换行符。
第二个表达式s/([A-Z]{2}) /\1\n/
搜索任意两个后跟空格的大写字母,并替换为后跟换行符的这些字母。
sed --version
sed (GNU sed) 4.2.2